JSON.parse()方法 【转载】

原文地址: http://blog.csdn.net/lowkeysk/article/details/8175195      感谢作者

本文章介绍一下javascript in json 中 json2.js中的parse()方法。

以下为json2js中的原文介绍

JSON.parse(text, reviver)
            This method parses a JSON text to produce an object or array.
            It can throw a SyntaxError exception.

The optional reviver parameter is a function that can filter and
            transform the results. It receives each of the keys and values,
            and its return value is used instead of the original value.
            If it returns what it received, then the structure is not modified.
            If it returns undefined then the member is deleted.

参数

text

必需。 一个有效的 JSON 字符串。

reviver

可选。 一个转换结果的函数。 将为对象的每个成员调用此函数。 如果成员包含嵌套对象,则先于父对象转换嵌套对象。 对于每个成员,会发生以下情况:

如果 reviver 返回一个有效值,则成员值将替换为转换后的值。
如果 reviver 返回它接收的相同值,则不修改成员值。
如果 reviver 返回 null 或 undefined,则删除成员。

返回值

一个对象或数组。

本文章介绍一下javascript in json 中 json2.js中的parse()方法。

以下为json2js中的原文介绍

JSON.parse(text, reviver)
            This method parses a JSON text to produce an object or array.
            It can throw a SyntaxError exception.

The optional reviver parameter is a function that can filter and
            transform the results. It receives each of the keys and values,
            and its return value is used instead of the original value.
            If it returns what it received, then the structure is not modified.
            If it returns undefined then the member is deleted.

参数

text

必需。 一个有效的 JSON 字符串。

reviver

可选。 一个转换结果的函数。 将为对象的每个成员调用此函数。 如果成员包含嵌套对象,则先于父对象转换嵌套对象。 对于每个成员,会发生以下情况:

如果 reviver 返回一个有效值,则成员值将替换为转换后的值。
如果 reviver 返回它接收的相同值,则不修改成员值。
如果 reviver 返回 null 或 undefined,则删除成员。

返回值

一个对象或数组。

[html] view plaincopy

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>JSON.parse()</title>
  5. <script type="text/javascript" src="json2.js"></script>
  6. <script type="text/javascript">
  7. var data=‘{‘
  8. +‘"root":‘
  9. +‘[‘
  10. +‘{"name":"1","value":"0"},‘
  11. +‘{"name":"6101","value":"西安市"},‘
  12. +‘{"name":"6102","value":"铜川市"},‘
  13. +‘{"name":"6103","value":"宝鸡市"},‘
  14. +‘{"name":"6104","value":"咸阳市"},‘
  15. +‘{"name":"6105","value":"渭南市"},‘
  16. +‘{"name":"6106","value":"延安市"},‘
  17. +‘{"name":"6107","value":"汉中市"},‘
  18. +‘{"name":"6108","value":"榆林市"},‘
  19. +‘{"name":"6109","value":"安康市"},‘
  20. +‘{"name":"6110","value":"商洛市"}‘
  21. +‘]‘
  22. +‘}‘;
  23. //示例1:此示例使用 JSON.parse 将 JSON 字符串转换为对象
  24. var jsontext = ‘{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}‘;
  25. var contact = JSON.parse(jsontext);
  26. document.write(contact.surname + ", " + contact.firstname + ", "+ contact.phone);
  27. //dateReviver
  28. //var dateObj = new Date(Date.UTC(‘2008‘, +‘01‘ - 1, +‘01‘, +‘12‘, +‘00‘, +‘00‘))
  29. //alert(dateObj.toUTCString())
  30. //示例2:此示例使用 JSON.parse 反序列化 ISO 格式的日期字符串, 将返回Date格式对象。
  31. var jsontext2 = ‘{ "hiredate": "2008-01-01T12:00:00Z", "birthdate": "2008-12-25T12:00:00Z" }‘;
  32. var dates = JSON.parse(jsontext2, dateReviver);
  33. document.write("<br /><br />"+dates.birthdate.toUTCString());
  34. function dateReviver(key, value) {
  35. var a;
  36. if (typeof value === ‘string‘) {
  37. a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
  38. if (a) {
  39. return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
  40. +a[5], +a[6]));
  41. }
  42. }
  43. return value;
  44. };
  45. </script>
  46. </head>
  47. <body>
  48. </body>
  49. </html>

上面代码中有两个示例:

示例1功能为将json字符串转化为json对象。(注意!json字符串的格式一定要标准,key和value一定要用双引号包括,否则会出线解析异常)

示例2功能介绍reviver修改返回结果的功能。

JSON.parse()方法 【转载】

时间: 2024-08-28 02:49:55

JSON.parse()方法 【转载】的相关文章

JSON.parse() 方法解析一个JSON字符串

JSON.parse() 方法解析一个JSON字符串,构造由字符串描述的JavaScript值或对象.可以提供可选的reviver函数以在返回之前对所得到的对象执行变换. 语法EDIT JSON.parse(text[, reviver]) 参数 text 要被解析成JavaSctipt值的字符串,查看 JSON 对象学习的JSON 语法的说明. reviver 可选 如果是一个函数,则规定了原始值如何被解析改造,在被返回之前. 返回值 Object对应给定的JSON文本. 异常 若被解析的 J

关于JSON.parse()方法的使用说明

JSON.parse() 方法用于将一个 JSON 字符串转换为对象. 语法 JSON.parse(text[, reviver]) 参数说明: text:必需, 一个有效的 JSON 字符串. reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数. 返回值: 返回给定 JSON 字符串转换后的对象. var obj=JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, &

JSON.stringify,JSON.parse方法

var obj={name:'zhangsan',age:'18'};/** js对象--->JSON字符串* JSON.stringify(js对象) --转化为--> JSON字符串* */console.log(obj);//Object {name: "zhangsan", age: "18"}console.log(JSON.stringify(obj));//{"name":"zhangsan",&qu

js中json处理总结之JSON.parse

踩过的坑都将成为路上的风景.队友在cookie中已存以下值: address_info {"address_name":"人民大会堂","...lng":1,"address_lat":1} 仔细观摩,并无发现任何不妥,只是一种简简单单的json格式字符串而已. 但在前台调用时,百试不爽,屡屡出错,错误代码如下,一直显示undefined var address_info = getCookie('address_info')

JSON.parse和eval的区别

JSON(JavaScript Object Notation)是一种轻量级的数据格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是Javascript原生格式,这意味着在javascript中处理JSON数据不需要任何特殊的API或工具包,而且效率非常高. 基本格式:varjsonData='{"data1":"Hello,","data2":"world!"}' 调用方法jsonData.data1

eval()和JSON.parse()的区别

我们将一个字符串解析成json对象时可以使用两种方法: 假设我们有一个json格式的字符串: '{ "student" : [ {"name":"鸣人","age":17}, {"name":"小樱","age":17}, {"name":"佐助","age":17} ] }' 然后我们需要把它解析成json

JSON.parse和eval的区别(转)

这几天刚好看到这里,记下来 JSON(JavaScript Object Notation)是一种轻量级的数据格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是Javascript原生格式,这意味着在javascript中处理JSON数据不需要任何特殊的API或工具包,而且效率非常高. 基本格式:varjsonData='{"data1":"Hello,","data2":"world!"}' 调用方法

JSON.parse()——json转JS

JSON 通常用于与服务端交换数据. 在接收服务器数据时一般是字符串. 我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象. 语法 JSON.parse(text[, reviver]) 参数说明: text:必需, 一个有效的 JSON 字符串. reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数. JSON 解析实例 例如我们从服务器接收了以下数据: { "name":"runoob", "al

JSON.parse(jsonStr)和eval(&#39;(&#39;+jsonStr+&#39;)&#39;)

我们先初始化一个json格式的对象: var jsonDate = '{ "name":"周星驰","age":23 }' var jsonObj = eval( '(' + jsonDate + ')' );  // eval();方法 var jsonObj = JSON.parse( jsonDate );  // JSON.parse(); 方法 然后在控制台调用: console.log( jsonObj.name );  // 两种方