javascript操作JSON的要领总结

 更新时间:2012年12月09日 13:46:12   作者:  
JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包,需要的朋友可以了解下
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。
本文主要是对JS操作JSON的要领做下总结。
在JSON中,有两种结构:对象和数组。
1. 一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值' 对”之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。例如:
复制代码 代码如下:

var o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};

名称是一个字符串; 值可以是一个字符串,一个数值,一个对象,一个布林值,一个有串行表,或者一个null值。
值的有串行表(Array):一个或者多个值用“,”分区后,使用“[”,“]”括起来就形成了这样的列表,形如:
  [collection, collection]
字符串:以""括起来的一串字符。
数值:一系列0-9的数字组合,可以为负数或者小数。还可以用“e”或者“E”表示为指数形式。
布林值:表示为 true 或者 false。
2. 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。
例如:
复制代码 代码如下:

var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];

为了方便地处理JSON数据,JSON提供了json.js包,下载地址:http://www.json.org/json.js
在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如:
JSON字符串:
复制代码 代码如下:

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

JSON对象:
复制代码 代码如下:

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

一、JSON字符串转换为JSON对象
要运用上面的str1,必须运用下面的要领先转化为JSON对象:
//由JSON字符串转换为JSON对象
复制代码 代码如下:

var obj = eval('(' + str + ')');

或者
复制代码 代码如下:

var obj = str.parseJSON(); //由JSON字符串转换为JSON对象

或者
复制代码 代码如下:

var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
[html]
然后,就可以这样读取:
[code]
Alert(obj.name);
Alert(obj.sex);

特别留心:如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会有疑问(抛出语法异常)。
二、可以运用 toJSONString()或者全局要领 JSON.stringify()将JSON对象转化为JSON字符串
例如:
复制代码 代码如下:

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

或者
复制代码 代码如下:

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

留心:
上面的多个要领中,除了eval()函数是js自带的之外,其他的多个要领都来自json.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个要领都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()要领,则说明您的json包版本太低。

相关文章

  • Ajax中解析Json的两种方法对比分析

    Ajax中解析Json的两种方法对比分析

    这里给大家介绍的是Ajax中解析Json的两种方法对比分析,十分的实用,本文为学习笔记,属新手文章,欢迎指教!
    2015-06-06
  • 说说JSON和JSONP 也许你会豁然开朗

    说说JSON和JSONP 也许你会豁然开朗

    说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决
    2012-09-09
  • JavaScript中的JSON 中文版翻译

    JavaScript中的JSON 中文版翻译

    JSON是JavaScript面向对象语法的一个子集。由于JSON是JavaScript的一个子集,因此它可清晰的运用于此语言中。
    2009-10-10
  • 实现单层json按照key字母顺序排序的示例

    实现单层json按照key字母顺序排序的示例

    下面小编就为大家分享一篇实现单层json按照key字母顺序排序的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • js中将字符串转换成json的三种方式

    js中将字符串转换成json的三种方式

    使用ajax的开发项目过程中,经常需要将json格式的字符串返回到前端,前端解析成js对象(JSON )。
    2011-01-01
  • 正则表达式搭配js轻松处理json文本方便而老古

    正则表达式搭配js轻松处理json文本方便而老古

    如何解析Json已经成为了众多业内人士谈论的焦点,依我看,要解析轻量化类型json,用.net自带的类库就可以胜任了,有一种看起来更方便的老古董——正则表达式,处理json是绰绰有余,感兴趣的你可不要错过了哈
    2013-02-02
  • Chrome中JSON.parse的特殊实现

    Chrome中JSON.parse的特殊实现

    ECMA 262 Edition5 中提供了原生的JSON支持,其中JSON.parse用来将字符串转成成json,见ECMA 262 Edition5 15.12.2。另见:字符串转换成json的三种方式
    2011-01-01
  • JSON相关知识汇总

    JSON相关知识汇总

    本文给大家汇总了一下关于json的相关的知识点,从基础到示例,非常全面,有需要的小伙伴可以参考下。
    2015-07-07
  • 一文了解什么是JWT

    一文了解什么是JWT

    JSON WEB Token是一种基于JSON的、用于在网络上声明某种主张的令牌,由三部分组成: 头信息, 消息体和签名,下面就一起来了解一下什么是JWT
    2023-05-05
  • JSON 数据格式介绍

    JSON 数据格式介绍

    这篇文章讲的比较深入,所以不用我画蛇添足了,只是下面这段代码很好的演示了JSON如何处理字符串数据
    2012-01-01

最新评论