var arr = [1,2,3,4];
 console.log(arr.toString()); //  1,2,3,4
 alert(JSON.stringify(arr));
 console.log(JSON.stringify(arr)); //  [1,2,3,4]

 arr.toString()是将数组转化成字符串,因此不带 [ ]

 而JSON.stringify(arr)是从一个对象解析出JSON字符串,是带[]的

 另外JSON.parse() 是用于从一个字符串中解析出json对象

 

var str = '{"name":"huangxiaojian","age":"23"}'

结果:

JSON.parse(str)

 

Object

  1. age: "23"
  2. name: "huangxiaojian"
  3. __proto__: Object

============================================

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" οnclick="init()" value="测试" /> </body> </html>


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

复制代码 代码如下:


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


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