参数

text

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

reviver

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

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

返回值

一个对象或数组。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JSON.parse()</title>
<script type="text/javascript" src="json2.js"></script>
<script type="text/javascript">
var data='{'
+'"root":'
+'['
+'{"name":"1","value":"0"},'
+'{"name":"6101","value":"西安市"},'
+'{"name":"6102","value":"铜川市"},'
+'{"name":"6103","value":"宝鸡市"},'
+'{"name":"6104","value":"咸阳市"},'
+'{"name":"6105","value":"渭南市"},'
+'{"name":"6106","value":"延安市"},'
+'{"name":"6107","value":"汉中市"},'
+'{"name":"6108","value":"榆林市"},'
+'{"name":"6109","value":"安康市"},'
+'{"name":"6110","value":"商洛市"}'
+']'
+'}'; //示例1:此示例使用 JSON.parse 将 JSON 字符串转换为对象
var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';
var contact = JSON.parse(jsontext);
document.write(contact.surname + ", " + contact.firstname + ", "+ contact.phone); //dateReviver
//var dateObj = new Date(Date.UTC('2008', +'01' - 1, +'01', +'12', +'00', +'00'))
//alert(dateObj.toUTCString()) //示例2:此示例使用 JSON.parse 反序列化 ISO 格式的日期字符串, 将返回Date格式对象。
var jsontext2 = '{ "hiredate": "2008-01-01T12:00:00Z", "birthdate": "2008-12-25T12:00:00Z" }';
var dates = JSON.parse(jsontext2, dateReviver);
document.write("<br /><br />"+dates.birthdate.toUTCString());
function dateReviver(key, value) {
var a;
if (typeof value === 'string') {
a = /^(\d{})-(\d{})-(\d{})T(\d{}):(\d{}):(\d{}(?:\.\d*)?)Z$/.exec(value);
if (a) {
return new Date(Date.UTC(+a[], +a[] - , +a[], +a[],
+a[], +a[]));
}
}
return value;
}; </script>
</head>
<body>
</body>
</html>

上面代码中有两个示例:

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

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

JSON.parse 的用法,在js中用的。也是反序列化用法。的更多相关文章

  1. JS中JSON.parse和eval的异同

    1.相同点 JSON.parse和eval函数都可将一段json字符串转换为json对象,如: var json = '{"intro":[{"name":&q ...

  2. arguments.callee 调用函数自身用法----JSON.parse()和JSON.stringify()前端js数据转换json格式

    arguments.callee 调用函数自身用法 arguments.callee 在哪一个函数中运行,它就代表哪个函数. 一般用在匿名函数中. 在匿名函数中有时会需要自己调用自己,但是由于是匿名函 ...

  3. js json.stringfy()和json.parse()的用法

    1.JSON.parse;作用:将JavaScript对象表示法的JSON字符串转换为对象(字符串转对象)语法:JSON.parse(text [, reviver])text 必选. 一个有效的 J ...

  4. jq each 用法以及js与json互转

    $(function(){ var json = '[{"id":"1","tagName":"apple"},{&qu ...

  5. JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法

    1. JSON.parse(jsonString): 在一个字符串中解析出JSON对象 var str = '[{"href":"baidu.com",&quo ...

  6. Js中JSON.stringify()与JSON.parse()与eval()详解及使用案例

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.因为采用独立于语言的文本格式,也使用了类似于C语言家族的习惯,拥有了这些特性使使JSON称为理想的数据交换语 ...

  7. JSON.parse()和JSON.stringify()的用法

    JSON.parse()是用于从一个字符串中解析出json对象,如下所示 var str = '{"name":"flsummer","age&quo ...

  8. 转:关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法

    1. JSON.parse(jsonString): 在一个字符串中解析出JSON对象 ? 1 2 3 var str = '[{"href":"baidu.com&qu ...

  9. js数组使用JSON.stringify()和toString()的区别,JSON.parse

    JSON.stringify()中的<br><br>var arr = [1,2,3,4]; console.log(arr.toString()); // 1,2,3,4 a ...

随机推荐

  1. Spring的自动装配

    在Spring中对自定义的引用类型注入时可以实现自动赋值.但是必须依赖set方法:  自动装配功能有两种: <!-- autowire:"byType" --根据class匹 ...

  2. HDU 6373.Pinball -简单的计算几何+物理受力分析 (2018 Multi-University Training Contest 6 1012)

    6373.Pinball 物理受力分析题目. 画的有点丑,通过受力分析,先求出θ角,为arctan(b/a),就是atan(b/a),然后将重力加速度分解为垂直斜面的和平行斜面的,垂直斜面的记为a1, ...

  3. UVA 10340 All in All(字符串,朴素匹配)

    #include <stdio.h> #include <algorithm> #include <cstring> using namespace std; ], ...

  4. vijos P1190繁忙的都市(Kruskal)(最小生成树)

    P1190  繁忙的都市 城市C是一个非常繁忙的大都市,城市 中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉 ...

  5. AtCoder - 2567 RGB Sequence

    Problem Statement There are N squares arranged in a row. The squares are numbered 1, 2, …, N, from l ...

  6. 计算最大公约数 Exercise05_14

    import java.util.Scanner; /** * @author 冰樱梦 * 时间:2018年下半年 * 题目:计算最大公约数 * */ public class Exercise05_ ...

  7. Java多线程——ReentrantLock源码阅读

    上一章<AQS源码阅读>讲了AQS框架,这次讲讲它的应用类(注意不是子类实现,待会细讲). ReentrantLock,顾名思义重入锁,但什么是重入,这个锁到底是怎样的,我们来看看类的注解 ...

  8. Problem A: 调用函数,计算分段函数的值

    #include<stdio.h> int sign(int n)//函数申明,定义函数 { int m; ) m=; ) m=; ) m=-; return m;//返回结果 } int ...

  9. 使用DFS求任意两点的所有路径

    先上代码: public static void findAllPaths(Integer nodeId,Integer targetNodeId, Map<Integer,ArrayList& ...

  10. UITextField增加textDidChange回调功能

    在使用UITextField来判断登陆按钮状态时只有 shouldChangeCharactersInRange函数,是在文件还没有改变前就调用了,而不是在改变后调用,要想实现改变后调用的功能,导致登 ...