标签:
JSON(JavaScript Object Notation, JavaScript对象表示法,简称JSON),是一种轻量级的数据交换格式,它基于JavaScript的对象字面量表示法。是JavaScript的一个子集。却与语言无关。
JSON有6种值:对象,数组,字符串,数字,布尔值(true, false)和特殊值null。空白(空格符,制表符,回车符和换行符)可被插到任何值的前后,这使其很易于阅读。
JSON对象是一个容纳“名/值”对的无序集合。名字可以是任何字符串。值可以是任何类型的JSON值,包括数组和对象。JSON对象可被无限层嵌套,但保持结构扁平更高效。
JSON数组是一个值得序列。其值可以是任何类型的JSON值,包括数组和对象。
JSON字符串被包围在一对双引号之间。\字符被用于转义。
JSON数字与JavaScript数字相似。整数首位不能为0(8进制表示冲突)。
以上就是JSON所有语法,来自《JavaScript语言精粹》。
var jsonObject = { "name" : "fun", //读数据时:jsonObject.name或者jsonObject["name"] "age" : 17, "girl" : true, "married" : false, "boyfriend" : null, "score" : {"chinese":100,"math":"A","English":"good"}, //读数据时:jsonObject.score.chinese或者jsonObject.score["chinese"] "favorite" : [{"PingPong":"years"},{"sing":"good"}] //读数据时:jsonObject.favorite[1].sing };
var jsonArray = [ {"name":"chuan"}, //读数据时:jsonArray[0].name {"name":"meng"} ];
var jsonString = ‘{"name":"chuan","age":"18"}‘; //最好养成习惯,JSON格式的字符串最外曾写单引号,里面全部用双引号,因为字符串传入后台程序解析成JSON对象时,有些语言是以双引号识别字符串的。
向JSON数组或对象修改数据时,直接在读数据时格式的后面赋值就行。
重点:
JSON数组或对象和字符串之间的转化:
在JavaScript中:
因为JSON就是JavaScript,可用eval函数把JSON字符串转化为JSON数据结构,调用格式为:
var jsonData = eval( ‘(‘ + jsonString + ‘)‘ ); //最好不用这种方法
但eval函数安全问题听说很严重,所以JavaScript找到了内置替换方案:使用JSON.parse方法替代eval,其调用格式为:
var jsonData = JSON.parse(jsonString); // 从字符串到JSON对象
相反,从JSON数据结构转化为字符串,则直接用JavaScript内置的方法JSON.stringify,调用格式为:
var jsonString = JSON.stringify(jsonData); // 从JSON对象到字符串,别人常说的序列化
在C#中:
string jsonString = JsonConvert.SerializeObject(jsonObject); //将JSON对象序列化为JSON字符串
string jsonString = ‘{"name":"chuan","age":18}‘; Student stu = JsonConvert.DeserializeObject<Student>(jsonString); string name = stu.name; //chuan //将JSON格式的字符串反序列化为JSON对象
标签:
原文地址:http://www.cnblogs.com/eiyc/p/5720085.html