JavaScript中的JSON操作
2014-06-07 23:43
162 查看
一、什么是JSON?
JSON:JavaScript 对象表示法(JavaScript
Object Notation)。JSON 是存储和交换文本信息的语法。类似 XML。JSON 比 XML 更小、更快,更易解析。
二、序列化JavaScript数据为JSON数据
1、 使用静态的JSON.stringify(value[,replacer][,space])将数据序列化为JSON数据。参数说明:
若replacer不是一个函数或者数组,则会抛出异常;若value包含一个循坏引用,也抛出异常。
2、toJSON()方法:如果value定义了toJSON()方法,那么stringify()方法等价于调用toJSON(),且stringify()方法会首先调用toJSON()方法,并返回该方法返回的结果。
定义toJSON()方法的类有:String、Boolean、Date、Number。对于没有定义toJSON()方法的数据类型,如Object将被删除,Array将被替换为null。在序列化的过程中,下列字符将会被转义:
引号(“)、反斜杠(\)/、退格(b)、换行(n)、回车(r)、水平制表(t)、四位十六进制(uhhhh)、Fromfeed(f).
结果:
三、逆序列化JSON数据为Javascript数据
使用静态的JSON.parse(text[,reviver])可以将JSON数据逆序列化为JavaScript数据。参数text是JSON字符串;参数reviver定义一个用于过滤和转换结果。
过滤转换结果是按照从后到前的顺序进行的,对每一个对象成员都会调用该函数:
1、如果函数返回一个值,则成员的值用该值替换;
2、如果函数返回一个接收到的原值,则成员的结构不会发生变化;
3、如果函数返回null或者undefined,则成员将被删除。
该参数常用于转换JSON数据的ISO日期格式字符串为Javascript的UTC格式的Date对象。如果解析正确,返回一个对象或者数组,;若text指定的JSON字符串格式有错,抛出异常。
结果:
JSON:JavaScript 对象表示法(JavaScript
Object Notation)。JSON 是存储和交换文本信息的语法。类似 XML。JSON 比 XML 更小、更快,更易解析。
<html> <body> <h2>在 JavaScript 中创建 JSON 对象</h2> <p> Name: <span id="jname"></span><br /> Age: <span id="jage"></span><br /> Address: <span id="jstreet"></span><br /> Phone: <span id="jphone"></span><br /> </p> <script type="text/javascript"> var JSONObject= { "name":"Bill Gates", "street":"Fifth Avenue New York 666", "age":56, "phone":"555 1234567"}; document.getElementById("jname").innerHTML=JSONObject.name document.getElementById("jage").innerHTML=JSONObject.age document.getElementById("jstreet").innerHTML=JSONObject.street document.getElementById("jphone").innerHTML=JSONObject.phone </script> </body> </html>
二、序列化JavaScript数据为JSON数据
1、 使用静态的JSON.stringify(value[,replacer][,space])将数据序列化为JSON数据。参数说明:
若replacer不是一个函数或者数组,则会抛出异常;若value包含一个循坏引用,也抛出异常。
2、toJSON()方法:如果value定义了toJSON()方法,那么stringify()方法等价于调用toJSON(),且stringify()方法会首先调用toJSON()方法,并返回该方法返回的结果。
定义toJSON()方法的类有:String、Boolean、Date、Number。对于没有定义toJSON()方法的数据类型,如Object将被删除,Array将被替换为null。在序列化的过程中,下列字符将会被转义:
引号(“)、反斜杠(\)/、退格(b)、换行(n)、回车(r)、水平制表(t)、四位十六进制(uhhhh)、Fromfeed(f).
//数据过滤 document.write("数据过滤:"+"<br/>"); var per = new Object; per.sex = "male"; per.age = 29; per.birthday = new Date(1994,2,18); var memberFilter = ["sex","age"]; var jsontext1 = JSON.stringify(per,memberFilter,"\t"); document.write(jsontext1+"<br/><br/>"); //数据转换 document.write("数据转换:"+"<br/>"); var contents = ["One","Two","Three"]; var jsontext2 = JSON.stringify(contents,toUpper); document.write(jsontext2+"<br/><br/>"); function toUpper(key,value) { return value.toString().toUpperCase(); } //toJSON()方法 document.write("toJSON()方法:"+"<br/>"); Object.prototype.toJSON = function(key) { var val; for(val in this) { if(typeof(this[val]) === 'string') { this[val] = this[val].toUpperCase(); } } return this; }; var jsontext3 = JSON.stringify(per); document.write(jsontext3);
结果:
三、逆序列化JSON数据为Javascript数据
使用静态的JSON.parse(text[,reviver])可以将JSON数据逆序列化为JavaScript数据。参数text是JSON字符串;参数reviver定义一个用于过滤和转换结果。
过滤转换结果是按照从后到前的顺序进行的,对每一个对象成员都会调用该函数:
1、如果函数返回一个值,则成员的值用该值替换;
2、如果函数返回一个接收到的原值,则成员的结构不会发生变化;
3、如果函数返回null或者undefined,则成员将被删除。
该参数常用于转换JSON数据的ISO日期格式字符串为Javascript的UTC格式的Date对象。如果解析正确,返回一个对象或者数组,;若text指定的JSON字符串格式有错,抛出异常。
var jsontext = '{"birthday":"2008-12-25T12:00:00Z"}'; var date = JSON.parse(jsontext,dateReviver); var string = date.birthday.toUTCString(); function dateReviver(key,value) { var a; if(typeof value === 'string') { var re = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/; a = re.exec(value); if(a) { return new Date(Date.UTC(+a[1],+a[2]-1,+a[3],+a[4],+a[5],+a[6])); } } return value; }; document.write(string);
结果:
相关文章推荐
- javascript JSON操作入门实例
- javascript json数据操作
- 在Javascript操作JSON对象,增加 删除 修改
- javascript 操作jsonArray
- php和javascript中Json操作总结
- javascript 操作 JSON
- 初学者必看:精心整理的Javascript操作JSON总结
- javascript操作json方法
- JavaScript 操作JSON
- 将json当数据库一样操作的javascript lib
- JavaScript操作cookie & Jquery跨域读取json数据
- c#和Javascript操作同一json对象
- Javascript购物车 操作Cookie存取Json
- javascript操作json方法
- javascript操作JSON
- javascript JSON操作入门实例
- JSON(JavaScript Object Notation)内容详解(Android操作JSON)
- 转:javascript对json操作讲解
- javascript操作json
- JavaScript对JSON的操作总结 (转)