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

 

posted @ 2016-01-10 19:32  小马哥的代码学习  阅读(318)  评论(0编辑  收藏  举报