JSON数据解析(JSON对象与json字符串json数组之间转换)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JSON的数据解析</title>
<script src="jQuery.js"></script>
<script type="text/javascript">
$(function(){
var str = {
"comments": [
{
"content": "很不错嘛",
"id": 1,
"nickname": "纳尼"
},
{
"content": "哟西哟西",
"id": 2,
"nickname": "小强"
}
]
};
console.log(str.comments[0].content);//获取特定的JSON内的数据
//获取全部的数据
$.each(str.comments, function(index, item) {
$("body").append(
"<div>" +index+":"+ item.content + "</div>" +
"<div>" +index+":"+ item.id + "</div>" +
"<div>" +index+":"+ item.nickname + "</div><hr/>");
});
/****************************************************************************
* 将JSON对象转换为字符串
* 可以使用方法JSON.stringify()将JSON对象转化为JSON字符串。
*****************************************************************************/
var str3 = JSON.stringify(str);
console.log(typeof str3);
/****************************************************************************
* js对象或者json字符串转成JSON对象
* parseJSON函数用来将一个普通的 JavaScript 对象序列化为 JSON 对象。
* 将标准字符串转换为JSON对象的函数是parseJSON(),使用方式如jQuery.parseJSON(str)//其中str就是满足本标题描述的字符串
******************************************************************************/
var str1='{ "name": "John" }';
var obj = $.parseJSON(str1)
console.log(obj.name);
/*当然也可以使用eval()方法将字符串转成json数据类型*/
var data='{ "name": "John","value": "123" }';
//data为字符串类型 则要将字符串类型转换成json数据类型
var jsondatas=eval("("+data+")");
console.log(jsondatas.value);
/*************************************************************************************
** 以下为数组类型字符串 转换成json 字符串 解析
** 数组形式的json字符串
**
************************************************************************************/
var jsondata="[{name:'1',value:'0'}, {name:'6101',value:'西安市'}, {name:'6102',value:'铜川市'}, {name:'6103',value:'宝鸡市'}, {name:'6104',value:'咸阳市'}, {name:'6105',value:'渭南市'}, {name:'6106',value:'延安市'}, {name:'6107',value:'汉中市'}, {name:'6108',value:'榆林市'}, {name:'6109',value:'安康市'}, {name:'6110',value:'商洛市'}]";
var json=eval(jsondata);
$.each(json,function(i,n){
console.log(json[i].name);
console.log(json[i].value);//根据索引取值
});
/*************************************************************************************
**
** json对象 不需要转换
**
************************************************************************************/
var json={
"Products":[
{"orderid":"11077","customerid":"RATTC"},
{"orderid":"11078","customerid":"RATT"}
],
"Img":[
{"id":"12345","url":"image/1.jpg"}
]
};
$.each(json.Products,function(i,n){
alert(n.orderid);
});
});
</script>
</head>
<body>
</body>
</html>