json解析

1.js 将json字符串转换为json对象的方法解析

   将json字符串转换为json对象的方法。在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所 以,JSON对象和JSON字符串之间的相互转换是关键。

例如:

JSON字符串:var str1 = '{ "name": "cxh", "sex": "man" }';
JSON对    象:var str2 = { "name": "cxh", "sex": "man" };

代码如下:

<script>
    var str1 = '{ "name": "cxh", "sex": "man" }'; 
    var str2 = { "name": "cxh", "sex": "man" };
    // 结果:string object
    console.log(typeof(str1),typeof(str2));
   
    // 方法1:
    var obj = eval('(' + str1 + ')');
    // 结果:object
    console.log(typeof(obj));
   
    // 方法2:
    <!-- var obj = str1.parseJSON(); -->
    var obj = JSON.parse(str1); 
    // 结果:object
    console.log(typeof(obj));
   
    // 方法3:
    var obj = $.parseJSON(str1);
    // 结果:object
    console.log(typeof(obj));
    console.log(obj.name, obj.sex);
    
    // 方法4:
    var obj = jQuery.parseJSON(str1);
    // 结果:object
    console.log(typeof(obj));
</script>
特别注意:
如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,
但是使用parseJSON()函数处理后会有问题(抛出语法异常)。

2.js 将json对象转换为json字符串的方法解析 

可以使用toJSONString()或者全局方法JSON.stringify()将JSON对象转化为JSON字符串。

代码如下:

<script>
    var str1 = '{ "name": "cxh", "sex": "man" }';
    var str2 = { "name": "cxh", "sex": "man" };
    // 结果:string object
    console.log(typeof(str1),typeof(str2))

    <!-- var last1=str2.toJSONString();  -->
    var last1=JSON.stringify(str1);
    var last2=JSON.stringify(str2);
    // 结果:string string
    console.log(typeof(last2),typeof(last2))
</script>
注意:
上面的几个方法中,除了eval()函数是js自带的之外,其他的几个方法都来自json.js包。
新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个方法都注入到了 Javascript 的内建对象里面,
前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。
如果提示找不到toJSONString()和parseJSON()方法,则说明您的json包版本太低。

 

 

附加:下面内容是转载的

JSON字符串与JSON对象的区别 

Q:什么是"JSON字符串",什么是"JSON对象",两者的区别?

a.JSON对象是直接可以使用JQuery操作的格式,如C#中可以用对象(类名)点出属性(方法)一样
b.JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,不能直接使用,除非你只想alert()他;

JSON对象:

var str2 = { "name": "deluyi", "sex": "man" };

JSON字符串:

var str1 = '{ "name": "deyuyi", "sex": "man" }';

 

Q:将"JSON字符串"转化为"JSON对象"的方法?

一:使用$.parseJSON(str)

    //由JSON字符串转换为JSON对象
    var str='{ "name": "John" }';
    var obj = jQuery.parseJSON(str)
    alert("1"+ obj.name);

ps:此种方式仅支持标准格式:var str='{ "name": "John" }';


二:JSON.parse(str)

        var str = '{ "name": "mady", "age": "24" }';
        var obj = JSON.parse(str);
        alert(obj.name);

ps:此种方式仅支持标准格式:var str='{ "name": "John" }';

 

三:使用eval('('+str+')');

    //由JSON字符串转换为JSON对象
    var str='{ "name": "John" }';
    var obj = eval('(' + str + ')'); 
    alert( obj.name);

    var str2="{ 'name': 'John' }";
    var obj2 = eval('(' + str2 + ')'); 
    alert( obj2.name);

    var str3="{ name: 'John' }";
    var obj3 = eval('(' + str3 + ')'); 
    alert( obj3.name);

 

以上均会输出结果“john”。

Eval方式可以转换以下标准和非标准格式字符串:

   var str="{ 'name': 'John' }";
   var str2='{ "name": "John" }';
   var str3="{ name: 'John' }";

 

Q:将"JSON对象"转化为"JSON字符串"的方法?

一:使用全局方法JSON.stringify()与toJSONString()

例如:

var last=obj.toJSONString(); //将JSON对象转化为JSON字符

或者

var last=JSON.stringify(obj); //将JSON对象转化为JSON字符

alert(last);

 

Q:读取JSON对象的方法?

如上面的例子:

      var str2 = { "name": "mady", "sex": "man" };

就可以这样读取:

      alert(str2.name);//和C#一样直接往出点…

弹出” mady”。

我们遇到的JSON很少有这么简单的,比如复杂一点的JSON对象如:

      var str={"GetUserPostByIdResult":{"Age":"33","ID":"2server","Name":"mady"}};

解析用:

      alert(str.GetUserPostByIdResult.Name);//一次点不出来,我多点几次

弹出:”mady”。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值