JSON语法以及json与JavaScript对象的转换实例讲解
json是javascript的一个严格的子集,利用了javascript中的一些模式来表示结构化数据。理解json,最重要的是理解它是一种数据格式,而不是一种语言。json虽然利用了javascript的一些模式,但json并不从属于javascript,很多编程语言都可以用json来传递数据。
json的语法:
学习json的语法,你只需知道以下三种类型的值。
1.简单值:也就是javascript中的字符串、数值、布尔值、null。
①,json不支持javascript的undefined。
②,json字符串必须用双引号,不能使用单引号。
在实际应用中,json更多地用来表示更复杂的数据结构,简单值只是构成整个json数据的基本单元。
2.对象:和javascript对象很相似,但是也有几个注意点。
①,json中对象的属性需加上引号。(这是手工编写json时最容易犯的错)
②,json对象没有声明。
③,末尾没有分号。
举个例子:
javascript对象字面量: var jsobject = { name :"wlk", age : 22, school : { name : "muc", locaton : "beijing" } }; json对象: { //没有声明 "name" :"wlk", "age" : 22, //json对象的属性必须加上引号 "school" : { "name" : "muc", "locaton" : "beijing" } } //末尾没有分号
上面的json对象中有两个name属性,但由于它们分属于不同的对象,所以没有问题,但是同一个对象中决不能出现同名属性。
3.数组:json的第二种复杂的数据类型就是数组,同样要注意json数组没有变量和分号。对象和数组通常是json数据格式的最外层形式。
比如:
[ //以数组为最外层形式 { "name":"wlk", "age":22 }, { "name":"wang", "school":{ "name":"muc", "location":"beijing" } }, ]
json文本与js对象的转换:(详解请解读《javascript高级程序设计3》第565页)
ecmascript5对解析json的行为进行了规范,定义了全局对象json。
全局json对象有两个方法:stringify()和parse()。
这两个方法就能完成javascript对象与json文本之间的转换。
javascript对象序列化为json文本:json.stringify()。
该方法可接受三个参数:
第一个参数是需要序列化的javascript对象。
第二个参数为可选参数,它是个过滤器,可以是数组或函数。
第三个参数也为可选参数,用于控制结果中的缩进和空白符。传第三个参数时,第二个参数也要传,如果没有过滤条件就传null。
有些对象会定义有tojson()方法,返回其自身的json数据格式。例如原生date对象。我们当然也可以给自定义对象添加tojson()方法。
json文本解析为javascript对象:json.parse()。
该方法可接受两个参数:
第一个是要解析的json文本。
第二个是一个函数。它会对json数据的每个键值对做一些处理。比如日期字符串经常要使用它进行日期的转换。
上一篇: 【.NET Core微服务实战-统一身份认证】开篇及目录索引
下一篇: C# 反射 判断类的延伸类型
推荐阅读
-
Json的概念与Json对象的写法,Json对象与Json字符串转换实例讲解
-
JSON语法以及json与JavaScript对象的转换实例讲解
-
JSON基本语法及与JavaScript的异同实例分析
-
java Bean与json对象间的转换实例讲解
-
Json的概念与Json对象的写法,Json对象与Json字符串转换实例讲解
-
详解JavaScript中js对象与JSON格式字符串的相互转换
-
Json字符串转换为JS对象的高效方法实例_javascript技巧
-
javascript中JSON对象与JSON字符串相互转换实例_javascript技巧
-
JSON语法以及json与JavaScript对象的转换实例讲解
-
javascript中JSON对象与JSON字符串相互转换实例_javascript技巧