js解析与序列化json数据(一)json.stringify()的基本用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js解析与序列化json数据(一)json.stringify()的基本用法相关的知识,希望对你有一定的参考价值。

参考技术A 早期的JSON解析器基本上就是使用javascript的eval()函数。由于JSON是JavaScript语法的自己,因此eval()函数可以解析、解释并返回JavaScript的对象和数组。
ECMAScript
5对解析JSON的行为进行了规范,定义了全局对象JSON。
JSON对象有两个方法:stringify()和parse()。在最简单的情况下,这两个方法分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生JavaScript。例如:
新建一个html:代码如下:
复制代码
代码如下:
<html>
<head>
<title></title>
<script
type="text/javascript">
function
init()

var
book=
title:"JavaScript高级程序设计",
authors:[
"Nicholas
C.
Zakas"
],
edition:3,
year:2011
;
var
jsonBook=JSON.stringify(book);
var
objectBook=JSON.parse(jsonBook);
var
title=objectBook.title;
</script>
</head>
<body>
<input
type="button"
onclick="init()"
value="测试"
/>
</body>
</html>
默认情况下,JSON.stringify()输出的JSON字符串不包含任何空字符或缩进,因此保存在jsonBook中的字符串如下所示:
复制代码
代码如下:
"title":"JavaScript高级程序设计","authors":["Nicholas
C.
Zakas"],"edition":3,"year":2011
在序列化JavaScript对象时,所有函数及原型成员都会被有意忽略,不体现在结果中。此外,值为undefined的任何属性也都会被跳过。结果中最终都是值为有效JSON数据类型的实例属性。
注意,虽然book与objectBook具有相同的属性,但它们是两个独立的、没有任何关系的对象。如果传给JSON.parse()的字符串不是有效的JSON,该方法会抛出错误。

js解析与序列化json数据

一、前言:JSON对象有两个方法:stringify()和parse()。

二、介绍:在最简单的情况下,这两个方法分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生JavaScript。

1、浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:

  JSON.stringify(jsonobj);  //将json对象转换成json字符串

  JSON.parse(jsonstr);  //将json字符串转换成json对象

2、另外还有eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码:

  eval(‘(‘+jsonstr+‘)‘);  //将json字符串转换成json对象,注意需要在json字符串外包裹一对小括号

  提示:虽然 eval() 的功能非常强大,但在实际使用中用到它的情况并不多。

三、事例:

function init() 

  var book={
    title:"JavaScript高级程序设计",
    authors:[
      "Nicholas C. Zakas"
    ],
    edition:3,
    year:2011
  };
  var jsonBook=JSON.stringify(book);
  var objectBook=JSON.parse(jsonBook);

}

三、详解:

1、默认情况下,JSON.stringify()输出的JSON字符串不包含任何空字符或缩进,因此保存在jsonBook中的字符串如下所示:

  {"title":"JavaScript高级程序设计","authors":["Nicholas C. Zakas"],"edition":3,"year":2011}

 

2、在序列化JavaScript对象时,所有函数及原型成员都会被有意忽略,不体现在结果中。此外,值为undefined的任何属性也都会被跳过。结果中最终都是值为有效JSON数据类型的实例属性。

3、注意,虽然book与objectBook1具有相同的属性,但它们是两个独立的、没有任何关系的对象。如果传给JSON.parse()的字符串不是有效的JSON,该方法会抛出错误。

 











以上是关于js解析与序列化json数据(一)json.stringify()的基本用法的主要内容,如果未能解决你的问题,请参考以下文章

蓝旭暑期培训Day3——JSON使用与简单解析

GoLang -- json文件操作

PHP传递通过AJAX传递JSON对象数组到前台,前台解析,遍历JSON

20.2 解析与序列化JavaScript高级程序设计第三版

Python3自定义json逐层解析器

express.js 4 JSON 解析来自 GET 请求的问题(从数据表请求数据)