JavaScript操作JSON
Javascript可以直接定义一个JSON对象:
<script type="text/javascript">
var obj = {"name":"大明","age":38};
window.console.log(obj);
</script>
在JSON对象中还可以定义JS函数
<script type="text/javascript">
var obj = {"name":"大明","age":8,"add":function(x,y){return x+y}};
window.console.log(obj.add(10,20));
</script>
遍历输出JSON中的全部内容
<script type="text/javascript">
var obj = {"name":"大明","age":8,"ariety":"哮天犬"};
for(var x in obj){
window.console.log("x:"+obj[x]);
}
</script>
将文本变为JSON对象使用eval()函数完成。
<script type="text/javascript">
var str = "{\"address\":\"xx省xx市\",\"name\":\"GUB宠物商店\"," +
"\"partners\":[\"大郎炊饼店\",\"肥犬美容会所\",\"大名护理中心\"]," +
"\"pets\":[{\"id\":1,\"name\":\"旺财\",\"price\":33.6,\"specie\"" +
":\"拉布拉多\"},{\"id\":2,\"name\":\"大明\",\"price\":250.38," +
"\"specie\":\"品种独特\"}]}\n";
var obj = eval("("+str+")");//文本对象变为JSON对象
window.console.log('店名:'+obj['name']);
window.console.log('地址:'+obj['address']);
window.console.log('-----------------------------');
for(var x in obj.partners){
window.console.log("商业伙伴-"+x+":"+obj.partners[x]);
}
window.console.log('-----------------------------');
for(var x in obj.pets){
var pet = obj.pets[x];
window.console.log("\t|-宠物编号:"+pet['id']);
window.console.log("\t|-宠物名:"+pet['name']);
window.console.log("\t|-宠物品种:"+pet['specie']);
window.console.log("\t|-价格:"+pet['price']);
window.console.log('\t-----------------------------');
}
</script>
但是使用eval()函数将字符串变为JSON对象实际上市不安全的,eval()函数可以执行转换字符串中的代码。
var num = 6;
var str = "{\"count\":num++}";
var obj = eval("("+str +")");
window.console.log(num);