在stringify功能进行了简要的论述,以JSONtojosn函数和解析函数
json.stringify功能(Javascript)语法:JSON.stringify(价值{ } } {,替代品,空间} }
将Javascript值转换为Javascript对象表示(JSON)字符串。
复制代码代码如下所示:
价值
这是必要的。要转换的Javascript值(通常是一个对象或数组)。
替代品
可选的,用于转换结果的函数或数组。
如果替代品是一个函数,JSON.stringify将调用函数进入键和各成员值。使用返回值而不是原来的值。如果函数的返回值是未定义的,成员是被排除在外。根对象的关键是一个空字符串:。
如果替代品是一个数组,只有成员密钥数组中的值被转换。一成员的变化顺序为数组中的键的顺序相同。当参数值也是一个数组,数组的替代品将被忽略。
空间
可选的。添加缩进,空格和换行符,以返回JSON文本更容易阅读。
如果省略空间,返回值文本将生成,不需要任何额外空间。
如果空间是一个数字,则返回值文本以缩进每个级别的指定空间数。如果空间大于10,则文本缩进10个空格。
如果空间是一个非空字符串(例如,T),则返回每个级别的缩进字符串中的值文本的字符。
如果空格是长度大于10个字符的字符串,则使用前10个字符。
如果该值有tojson json.stringify函数使用的方法,该方法返回的值。如果该tojson方法返回的值是未定义的,它不会转换的成员。这使对象来确定自己的JSON表示。
没有JSON表示的值,如未定义的,将不被转换。在对象中,这些值将被丢弃。在数组中,这些值将被null替换。
执行顺序
在序列化过程中,如果参数值对应的tojson方法,然后json.stringify将首先调用tojson方法。如果方法不存在,是利用原有的价值。其次,如果提供的替代参数值(原始值或返回值的tojson)将与替代品的参数返回值取代。最后,一个空间的基础上加入了可选的空间参数的值来生成最终的JSON文本。
这个例子使用json.stringify转换成JSON文本接触对象。定义memberfilter阵列,只有姓和电话成员转换。省略名成员。
复制代码代码如下所示:
var =新对象();
contact.firstname =Jesper ;
contact.surname =阿伯格;
contact.phone = {555-0100
无功memberfilter =新的数组();
memberfilter { 0 } =姓;
memberfilter { 1 } =电话;
无功jsontext = json.stringify(接触,memberfilter, T );
document.write(jsontext);
输出:
/ / {姓:阿伯格
tojson方法(日期)(Javascript)
语法:objectname.tojson()
对象
这是必需的,需要用JSON序列化的对象。
该方法是tojson内置日期Javascript对象的成员。它返回的ISO格式的日期字符串(由后缀Z表示)在UTC时区。
下面的示例序列化的值的字符串成员价值的大写的tojson方法,tojson方法被调用时,json.stringify叫做。
复制代码代码如下所示:
Javascript
var =新对象();
contact.firstname =Jesper ;
contact.surname =阿伯格;
contact.phone = {555-0100
contact.tojson =功能(关键)
{
var替换=新对象();
因为(VaR Val在此)
{
如果(typeof(这{瓦尔})= 'String')
更换{ } = { }这瓦尔Val toUpperCase();
其他的
替换{ } =此{ }
}
退货换货;
};
无功jsontext = json.stringify(接触);
价值jsontext: / *
{FirstName:Jesper
* /
JSON.parse函数(Javascript)
将Javascript对象表示(JSON)字符串转换为对象。
语法:JSON.parse(文{,齐磊})
复制代码代码如下所示:
文本
这是必需的。一个有效的JSON字符串。
齐磊
可选的:一个转换结果的函数。这个函数是为对象的每个成员调用的。如果一个成员包含一个嵌套对象,那么嵌套对象在父对象之前被转换:
如果Reviver返回有效值、会员价值被转换的值替换。
如果Reviver返回接收到的相同的值,该成员的值不会被修改。
如果Reviver返回null或undefined,成员删除。
下面的示例使用JSON.parse将JSON字符串转换成一个对象。
复制代码代码如下所示:
无功jsontext ={FirstName:Jesper
VaR接触= JSON.parse(jsontext);
document.write(contact.surname +
输出: /艾伯格,杰斯珀
下面的示例演示如何使用json.stringify转换成JSON字符串数组,然后使用JSON.parse将字符串转换为一个数组。
复制代码代码如下所示:
var arr = {
var str = json.stringify(ARR);
document.write(STR);
document.write();
var newarr = JSON.parse(STR);
而(newarr.length > 0){
(newarr.pop document.write()+);
}
输出: