码迷,mamicode.com
首页 > Web开发 > 详细

json

时间:2016-07-30 06:55:28      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

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对象

还有一种Linq to JSON,构造JSON对象。

json

标签:

原文地址:http://www.cnblogs.com/eiyc/p/5720085.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!