在WEB数据传输过程中,json是以文本,即字符串的轻量级形式传递的,而客户端一般用JS操作的是接收到的JSON对象,所以,JSON对象和JSON字符串之间的相互转换、JSON数据的解析是关键。

先明确2个概念例如:

JSON字符串:

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

JSON对象:

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

可以简单这样理解:

JSON对象是直接可以使用JQuery操作的格式,如C#中可以用对象(类名)点出属性(方法)一样;

JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,不能直接使用,除非你只想alert()他;

一、JSON字符串转换为JSON对象

要使用上面的str1,必须使用下面的方法先转化为JSON对象:

A:eval函数

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”。

此种方式仅支持标准格式:var str='{ "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);

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

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

参见本例下载包中:JqueryDemo3.html

以上结果一致,均输出姓名,如下图:

特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。

D:Other方式

如果忍不住想犯错,十分十分想解析非标准、非正规字符串,如:

      {name:mady,age:23}

或者

      {name:’mady’,age:23}

以及其他的你能想到的各种本质正确的非法格式,那么有扩展库可以解决

jquery-json 扩展库

下载地址在这里:http://code.google.com/p/jquery-json/

这个库用来扩展 jQuery ,对于 JSON 的使用,扩展了两个函数:toJSONparseJSON

toJSON 函数用来将一个普通的 JavaScript 对象序列化为 JSON 对象。

parseJSON函数用来将一个普通的 JavaScript 对象序列化为 JSON 对象too。

      var data=$.toJSON({ x: 2, y: 3 }); 
      var obj = jQuery.parseJSON(data); 
      alert(obj.x); 
      var str = {plugin: 'jquery-json', version: 2.3}; 
      var data2=$.toJSON(str); 
      var obj2 = jQuery.parseJSON(data2); 
      alert(obj2.plugin);

以上代码执行结果如:

参见本例下载包中:JqueryDemo5.html

二、将JSON对象转换为字符串

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

例如:

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

或者

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

alert(last);

三、解析读取JSON

我们通过各种方式将字符串转换为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”。

再再复杂一点的如:

      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("<div>" +index+":"+ item.name + "</div>" + "<div>" +index+":"+ item.value + "</div><hr/>");});

其中这个“#info”是个DIV的ID。输入结果如下图:

参见本例下载包中:JqueryDemo4.html

注意:本例如果要使用其他转换函数请更改字符串内单引号为双引号,外引号为单引号。

本文章所有代码:点击下载

转载于:https://www.cnblogs.com/wang1006tao/p/3931854.html

json对象和json字符串转换方法相关推荐

  1. json字符串,JSON对象,JSON数组的区别与相互转换

    JSON数组,json字符串,JSON对象,数组的区别与基本操作整理 JSON对象是直接可以使用JQuery操作的格式 JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据, ...

  2. Json对象和Json字符串

    JSON对象 有时候在做项目的时候时常将这两个概念弄混淆,尤其是在使用springmvc的时候,后台@RequestBody接受的是一个json格式的字符串,一定是一个字符串.  先介绍一下json对 ...

  3. json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值...

    json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 原文:json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 主要内容: 一 ...

  4. json对象和json字符串之间的转化

    json字符串----->json对象 使用JSON.parse()函数 var jsonStr = '{"name":"Winnie","ag ...

  5. Json对象与Json字符串的转化、JSON字符串与Java对象的转换

    一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...

  6. jQuery中json对象与json字符串互换

    json字符串转json对象:jQuery.parseJSON(jsonStr); json对象转json字符串: JSON.st ringify(jsonObj); IE中可能对unicode使用& ...

  7. JavaScript对象、JSON对象、JSON字符串的区别

    一.首先看下什么是JSON JSON:JavaScript Object Natation,JavaScript对象的表现形式,已经发展成一种轻量级的数据交换格式. JavaScript对象的表现形式 ...

  8. json - json对象和json字符串直接的相互转换

    一.json字符串转json对象 1.json字符串转json对象 var obj = JSON.parse(str); //由json字符串转换为json对象 2.获取对象的value consol ...

  9. jquery:字符串转json对象,json对象转字符串

    jquery:字符串转json对象,json对象转字符串 JSON字符串: var str = '{ "name": "cxh", "sex" ...

最新文章

  1. 【转】Vue.js 2.0 快速上手精华梳理
  2. 海量数据处理:从并发编程到分布式系统
  3. IBD:5-氨基水杨酸治疗后溃疡性结肠炎患者真菌菌群的变化
  4. WCF契约的简单介绍(服务契约 数据契约 消息契约)
  5. Castle ActiveRecord学习实践(4):实现One-Many关系的映射
  6. 成功解决VS编译环境下C++语言出现的异常提示:烫烫烫烫烫烫烫烫烫烫
  7. 表情转html,PHP转换emoji表情为HTML字符实体
  8. three.js之性能监视器
  9. HDU1054 Strategic Game
  10. Customer Report这个Fiori应用必须和CRM耦合在一起么
  11. Linux多线程——使用信号量同步线程
  12. php查询车位系统代码,php车辆违章查询数据示例
  13. android v4包自动导入吧,android如何导入v4包的源码
  14. SQLite DBHelp
  15. 分享按钮 Social Buttons for Bootstrap
  16. 梯度下降法快速教程 | 第三章:学习率衰减因子(decay)的原理与Python实现
  17. 2018焦作网络赛 - Poor God Water 一道水题的教训
  18. 转载(面向对象设计的原则)
  19. 【自我救赎--牛客网Top101 4天刷题计划】 第三天 渐入佳境
  20. Spring框架介绍

热门文章

  1. mysql所有班级名称和人数_mysql数据库优化课程---12、mysql嵌套和链接查询(查询user表中存在的所有班级的信息?)...
  2. 网络推广恶意点击js_昆明百度推广电话方法(百度推广)按效果付费_有效商机咨询...
  3. 获取本年、本月、本周时间范围_为什么“增值税期末留抵税额本年累计数”很快就被废止了...
  4. python处理pdf实例_Python实战-从菜鸟到大牛的进阶之路pdf_Python教程
  5. 安徽自考计算机基础考试时间,安徽2021年4月自考考试时间
  6. C语言:随笔8--结构体
  7. 【lidar】基于YOLO的3D目标检测(激光雷达点云)课程设计
  8. 深度学习--TensorFlow(项目)识别自己的手写数字(基于CNN卷积神经网络)
  9. C语言实现bmp图像锐化
  10. linux怎么开启samba服务,LINUX开启SAMBA服务