Json小结

Json小结

1、JSON的两种数据格式

A开始与结束的标志"{","}",里面放着各种key、value值并以“,”分隔。

B如果多个JSON组合就是有序的value集合,我们称之为JsonArray,他的构造形如[{},{},{}....]

2、java生成JSON对象

JSONObject obj = new JSONObje--------------ct();//new一个JSON对象

obj.put("key", "^^");//json对象存个值

System.err.println(obj);

运行的结果为{"key":"^^"}

3、java生成JsonArray对象

JSONArray array = new JSONArray();

JSONObject obj = new JSONObject();

obj.put("key", "呵呵");

array.add(obj);

JSONObject obj1 = new JSONObject();

obj1.put("key", "嘿嘿");

array.add(obj1);

System.err.println(array);

运行的结果为[{"key":"呵呵"},{"key":"嘿嘿"}]

4、java中String字符串与Json转换

json数组格式的字符串可以通过方法直接转换为JSONArray的格式:

String aaa = "[{name1:{name2:{name3:'value1',name4:'value2'}}},{}]";

JSONArray.fromObject(aaa)

JSONArray getJsonArray=JSONArray.fromObject(arrayStr);//将结果转换成JSONArray对象的形式 

JSONObject getJsonObj = getJsonArray.getJSONObject(0);//获取json数组中的第一项 

String result=getJsonObj.getJSONObject("name1").getJSONObject("name2").getJSONObject("name4"); 

5、java解析JSon

// 一个未转化的字符串 
String str = "[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'},{name:'d',value:'dd'}]" ;
 // 首先把字符串转成 JSONArray 对象 
JSONArray json1 = JSONArray.fromObject(str ); 
if(json1.size()>0){ 
  for(int i=0;i<json1.size();i++){ 
   // 遍历 jsonarray 数组,把每一个对象转成 json 对象 
  JSONObject job = json1.getJSONObject(i); // 得到 每个对象中的属性值 
  System.out.println(job.get("name")+"=") ; 
  } 
}

6、JSON 和 JS 对象互转

JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。

如:

var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的

var json = '{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串,本质是一个字符串

要实现从对象转换为 JSON 字符串,使用 JSON.stringify() 方法:

var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}'

要实现从 JSON 转换为对象,使用 JSON.parse() 方法:

var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}

7、jquery JSON的解析方式

一、eval()

对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明(type:json),或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次:

var dataObj=eval("("+data+")");//转换为json对象 

alert(dataObj.root.length);//输出root的子对象数量 

$.each(dataObj.root,fucntion(idx,item){ 

if(idx==0){ 

return true; 

} 

//输出每个root子对象的名称和值 

alert("name:"+item.name+",value:"+item.value); 

}) 

注:对于一般的js生成json对象,只需要将$.each()方法替换为for语句即可,其他不变。 

二、jQuery解析Json对象: 

jQuery提供了另一种方法“parseJSON”,这需要一个标准的JSON字符串,并返回生成的JavaScript对象。例如:

var parsedJson = $.parseJSON(results); 

alert(parsedJson.name);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值