js处理通过插件返回的json
这几天一直在折腾Node和跟它有关的东西,为了给自己的学习输出成果里增加一个功能,
使用了superagent,但是发现取到返回值后,自己不会从Json里拿想要的值,真是2到无穷大
json是js的原生格式,下面就把从别的博客学习来的内容总结了一下,发出来
在javascript环境中,JSON数据不须要任何特殊的 API 或工具包
补一句:学习前端,javascript的原生方法是非常重要的,记牢。
首先要搞清楚两个概念~
Json的两种数据结构:对象和数组
1.对象
一个对象以“{”开始,“}”结束。每个“key”后跟一“:”,“‘key/value’ 对”之间运用 “,”分隔。
packJson = {"name":"nikita", "password":"1111"}
2.数组
packJson = [{"name":"nikita", "password":"1111"}, {"name":"tony", "password":"2222"}];
JSON对象和JSON字符串的转换
JSON字符串:
var jsonStr = '{"name":"nikita", "password":"1111"}';
JSON对象:
var jsonObj = {"name":"nikita", "password":"1111"};
有这两种表现形式的原因是,在js处理中的json是一个对象,但是在传输中json数据是字符串
所以我们在编辑和发送之间就有一个转换的步骤,方法如下:
1 var myObject = eval('(' + myJSONtext + ')');
注:eval是js自带的函数,不是很安全,可以考虑用json包,需要的包如下:
json-lib-2.3-jdk15.jar
commons-beanutils-1.7.0.jar
commons-httpclient-3.1.jar
commons-lang-2.3.jar
commons-logging-1.0.4.jar
commons-collections-3.1.jar
ezmorph-1.0.3.jar
进入操作部分,首先是遍历json对象:
1 myJson = {"name":"nikita", "password":"1111"}; 2 3 for(var p in myJson){//遍历json对象的每个key/value对,p为key 4 5 alert(p + " " + myJson[p]); 6 7 }
遍历json数组
1 packJson = [ 2 3 {"name":"nikita", "password":"1111"}, 4 5 {"name":"tony", "password":"2222"} 6 7 ]; 8 9 for(var p in packJson){//遍历json数组时,这么写p为索引,0,1 10 11 alert(packJson[p].name + " " + packJson[p].password); 12 13 }
不两个json对象组装到一起,这个方法还可以继续延伸,n个对象都可以组合,也可以剥离出去,灵活多变嘛
1 //targetJson 目标JSON,packJson 被组装JSON 2 3 function addGroupJson(targetJson, packJson){ 4 5 if(targetJson && packJson){ 6 7 for(var p in packJson){ 8 9 targetJson[p] = packJson[p]; 10 11 } 12 13 } 14 15 }
转自如下博客:
http://www.cnblogs.com/csj222/archive/2013/04/11/3013667.html