java中使用jsonp与json

来源:互联网 发布:怎么从icloud恢复数据 编辑:程序博客网 时间:2024/06/05 17:39
解决跨域问题可以使用jsonp:
     $.ajax({
          url:"",
          type:"GET",这里和普通的json不同,要使用GET格式
          dataType:"jsonp",数据格式类型jsonp
          data:{},json数据
          jsonp:"jsonpcallback",后台要接受的js参数名
          success:function(data){},
          error:function(){}
});
java后台(GET请求):
     String jsonp = request.getParameter("jsonpcallback");
     return jsonp+"("+json数据格式+")"
---------------------------------------------------------
alibaba fastJson使用
一半对象转Json,JSON.toJSONString(Object object);
将JSON数据转化为指定数据格式:
JSON.parseObject(jsonString,指定类型的.class文件)
------------------------------------------


jsonObject = JSONObject.parseObject(json)//将json字符串转化为json对象(JSONObject)
jsonArray = jsonObject.getJSONArray("");//根据key值来获取jsonobject对象里的jsonarray
jso = jsonArray.getJSONObject(0),根据下标来获取jsonArray里的jsonObject对象
jso.getString("key")//根据key值取jsonObject里的value,返回一个string对象


以上四行说明在解析json字符串时,可以转为jsonObject进行解析


例如:


 String json="{\"name\":\"刘德华\",\"age\":35,\"some\":[{\"k1\":\"v1\",\"k2\":\"v2\"},{\"k3\":\"v3\",\"k4\":\"v4\"}]}";
     JSONObject jso = JSONObject.parseObject(json);//将字符串转换为json对象
     System.out.println(jso.getString("name"));
     System.out.println("初始jsonObject:\n"+jso+"\n");
     JSONArray jArray = jso.getJSONArray("some");
     System.out.println("jsonObject里面的jsonarray:\n"+jArray+"\n");
     JSONObject job = jArray.getJSONObject(0);
     System.out.println("jsonObject里面的jsonarray里面的第一个jsonobject:\n"+job+"\n");
     String vString=job.getString("k1");//jsonobject对象通过key直接取得String的值
     System.out.println("jsonObject里面的jsonarray里面的第一个jsonobject里的键值对对k1取值:\n"+vString+"\n");