用户登录
用户注册

分享至

neo4j json api

  • 作者: wddcmm
  • 来源: 51数据库
  • 2020-10-01
很多浏览器出去安全考虑都会组织跨域的get请求. 要跨域读取数据, 必须有得到api服务端的授权支持.
常见的方式有以下三种.
(1)Jsonp
实际上就是在请求的api地址末尾加上一个回调函数, 然后将结果通过回调函数传递给客户端.

(2)授权特定Url
服务器端语言基本上都会有授权的代码支持. 比如c#: 需要在response的header里面增加Access-Control-Allow-Origin

(3)使用Crossdomain.xml
这个主要是用来允许flash的跨域请求. 对于javascript的跨域请求是否生效, 我还没有做过验证.



  1. 简单的手动放置 键值对 到jsonobject,然后在put到jsonarray对象里 list<article> al = articlemng.find(f); system.out.println(al.size()); httpservletresponse hsr = servletactioncontext.getresponse(); if(null == al){ return ; } for(article a : al){ system.out.println(a.getid()+a.getdescription()+a.gettitle()); } jsonarray json = new jsonarray(); for(article a : al){ jsonobject jo = new jsonobject(); jo.put("id", a.getid()); jo.put("title", a.gettitle()); jo.put("desc", a.getdescription()); json.put(jo); } try { system.out.println(json.tostring()); hsr.setcharacterencoding("utf-8"); hsr.getwriter().write(json.tostring()); } catch (ioexception e) { e.printstacktrace(); } 复制代码 上述代码jsonarray是引入的org.json.jsonarray包 而用net.sf.json包下jsonarray的静态方法:fromobject(list) 这是网上大多是都是直接用此方法快捷转换json,但是对于hibernate级联操作关联的对象,这个方法就会报错,如果将映射文件中的级联配置去掉就行了。 另外对于list的要求就是其中的元素是字符串或对象,否则json不知道你想要的是什么数据。 <many-to-one name="cmsent" column="comment_tid" class="com.fcms.cms.entity.cmscomment" not-null="false" cascade="delete"> 但是级联操作毕竟还是得存在,否则以后数据冗余、多余。 解决方法就是:jsonarray submsgs = jsonarray.fromobject(object, config); jsonconfig config = new jsonconfig(); config.setjsonpropertyfilter(new propertyfilter() { public boolean apply(object arg0, string arg1, object arg2) { if (arg1.equals("article") ||arg1.equals("fans")) { return true; } else { return false; } } });
软件
前端设计
程序设计
Java相关