json

1,解析json需要jar:commons-beanutils.jar,commons-collections.jar,commons-lang.jar,commons-logging.jar,ezmorph.jar.json-lib.jar
2 json是通过key:vlaue这样的组成的,还可以添加数组,不过数组格式也是按这种方式
如:String json="{id:'id1',value:'value1',name:'name1',array1:[{a1:'a11',a2:'a2'}]}";
3 通过JSONObject.fromObject()来得到JSONObject类型的对象,
如:JSONObject json_object=JSONObject.fromObject(json);
4 然后得到JSONObject对象,就可以通通过该对象的get方法得到json中的name的值,
如:String id=json_object.get("id").toString();
5 通过JSONObject.fromObject是为了得到JSONObject类型,可以得到JSONArray类型,
如:JSONObject jo1=jo.getJSONArray("array1").getJSONObject(0);
System.out.println(jo1.get("a1"));
为了得到json类型中的数组类型,如上。
6 解析json数组中元素的几种方法,
例如:第一种:JSONObject jo1=JSONObject.getJSONArray("array1").getJSONOjbect(0);
第二种,JSONObject jo2=JSONObject.fromObject(JSONObject.getJSONArray("array1").get(0))
个人觉得第一种比较好,
7 要想得到get(''),要使用JSONObject对象来得到,为了得到JSONObject对象,如果是单一的可以通过JSONObject.fromObject(),如果是数组可以通过JSONObject.getJSONArray('').getJSONObject(0),
如:JSONObject jo=JSONObject.fromObject(json);
System.out.println(jo.get("id").toString());
JSONObject jo1=jo.getJSONArray("array1").getJSONObject(1);
System.out.println(jo1.get("a"));


jsonObject对象,得到单一,通过get,得到数组,通过getJSONArray
8 json可以通过List和map转换而来,
如:List list=new ArrayList();
list.add(1);
list.add("1");
list.add("12");
JSONArray ja=JSONArray.fromObject(list);
//JSONObject jo=JSONObject.fromObject(list);
Map<String,Object> map=new HashMap();
map.put("1","11");
map.put("2","22");
JSONObject jo=JSONObject.fromObject(map);
由于list为数组,所有必须通过JSONArray来转换,
9 JSONObject还可以put方法,添加map等类型,
如:Map<String,Object> map=new HashMap();
map.put("1","11");
map.put("2","22");
JSONObject jo=JSONObject.fromObject(map);
jo.put("map",map);
System.out.println(jo.get("map"));
10 js中的eval强大,可以计算表达式,
如:<script type="text/javascript" language="javascript">
  var obj={name:"11",id:'12'};
  var x=12;
  var obj1=eval(x+1);
  alert(obj1);
  </script>
11 eval也可以解析json
如:var obj={name:"11",id:'12'};
  var x=12;
  var obj1=eval(obj);
  alert(obj1.id);
12 eval也可以解析json数组,
如:var obj={name:[{aa:'aa1',bb:'bb1'}]};
  var x=12;
  var obj1=eval(obj);
  var obj2=eval(obj1.name)
  alert(obj2[0].aa);
13 如果json为字符串,则需要在使用eval时添加"("+")"
如:var obj="{name:'aa'}";
  var x=12;
  var obj1=eval("("+obj+")");
  alert(obj1.name);
14通过eval转化为后的结果不是字符串,
如:var obj="{a:[{name:'aa1'}]}";
  var x=12;
  var obj1=eval("("+obj+")");
  //alert(obj1[0].name);
  var obj2=eval(obj1.a);
 alert(obj2[0].name);
15 eval是将json字符串转化为json对象,
16 eval是将json字符串转为话json对象,JSON.stringify()是讲json对象转化为json字符串
如:var obj="{a:'aa'}";
 var obj1=eval("("+obj+")");
 alert(obj1.a);
 var obj2=JSON.stringify(obj1);
 alert(obj2);
 var obj3=eval("("+obj2+")");
 alert(obj3.a);
需要使用json.stringify(),需要引用json2.js。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值