jquery解析json字符串-使用Jquery解析Json-Qingya

2023-08-22 0 7,507 百度已收录

借助原生 JSON 对象将对象转换字符

[javascript]

varjsObj={};jsObj.testArray=[1,2,3,4,5];jsObj.name='CSS3';jsObj.date='2011年5月8日';varstr=JSON.stringify(jsObj );警报(str);

从 JSON 字符转换为对象

[javascript]

varjsObj={};jsObj.testArray=[1,2,3,4,5];jsObj.name='CSS3';jsObj.date='2011年5月8日';varstr=JSON.stringify(jsObj );varstr1=JSON. 解析(str);警报(str1);

改变:

首先明确两个概念:

JSON 字符串:

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

JSON 对象:

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

可以简单地这样理解:

JSON对象是一种可以被JQuery直接操作的格式,就像在C#中一样,可以用对象(类名)来指出属性(方法);

JSON 字符串只是一个字符串,一个整体。 如果不被拦截,就没有办法取出里面存储的数据,也不能直接使用jquery解析json字符串,除非你只想alert()他;

1.将JSON字符串转换为JSON对象

要使用前面的str1,必须通过以下方式将其转换为JSON对象:

A:评估函数

eval函数可以直接将本质上符合或近似符合JSON格式的字符串转换为JSON对象,使用方法如:

eval('('+str+')');//其中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' }";

请参阅此示例下载包:JqueryDemo1.html

B:parseJSON函数

另一个将标准字符串转换为JSON对象的函数是parseJSON(),使用诸如jQuery.parseJSON(str)之类的方法//其中str是符合本标题描述的字符串

    //由JSON字符串转换为JSON对象

    var str='{ "name": "John" }';
    var obj = jQuery.parseJSON(str)
    alert("1"+ obj.name);

以上所有操作都会输出结果“john”。

该方法仅支持标准格式:varstr='{"name":"John"}';

请参阅下载包中的示例:JqueryDemo2.html

C: JSON.parse 函数

另一个将标准字符串转换为JSON对象的函数是JSON.parse(),使用的方法如JSON.parse(str)//其中str是符合本标题描述的字符串

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

jquery解析json字符串-使用Jquery解析Json-Qingya

以上所有操作都会输出结果“john”。

该方法仅支持标准格式:varstr='{"name":"John"}';

请参阅此示例下载包:JqueryDemo3.html

上面结果一致,输​​出名称,如右图:

非常小心:如果 obj 本来是 JSON 对象,那么使用 eval() 函数转换后仍然是 JSON 对象(即使转换多次),并且使用 parseJSON() 函数处理后会出现问题(抛出一个句子异常)。

2.将JSON对象转换为字符串

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

例如:

varlast=obj.toJSONString();//将JSON对象转换为JSON字符

或者

varlast=JSON.stringify(obj);//将JSON对象转换为JSON字符

警报(最后);

3. 解析和读取JSON

当我们将字符串转换成各种形式的JSON对象后,我们对其进行解析。

正如前面的例子:

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

可以这样读:

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

弹出“疯狂”。

我们遇到的 JSON 很少如此简单jquery解析json字符串,例如更复杂的 JSON 对象如:

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

解析为:

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

jquery解析json字符串-使用Jquery解析Json-Qingya

弹出窗口:“疯狂”。

更复杂的比如:

      var data=" { root: [ {'name':'6200','value':'0'}, {'name':'6101','value':'xa'}, {'name':'6102','value':'beijing'}, {'name':'6103','value':'haerbin'}]}";

如果你想挑出来,分析一下:

      alert(dataObj.root[0].name);

弹出窗口:“6200”。

如果你想分组选择,请分析:

      $.each(dataObj.root, function(index, item) {
            $("#info").append(
                    "
" +index+":"+ item.name + "
" + "
" +index+":"+ item.value + "

"); });

其中,“#info”是一个DIV的ID。 输入结果如右图所示:

请参阅此示例下载包:JqueryDemo4.html

注意:如果本例中需要使用其他转换函数,请将字符串中的单冒号修改为双冒号,外面的逗号修改为单冒号。

本文所有代码:点击下载

改变:

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 jquery jquery解析json字符串-使用Jquery解析Json-Qingya https://www.wkzy.net/game/140936.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务