一、定义
JSON(JavaScipt Object Notation,JS对象标记语言):轻量级的数据交换格式
独立于编程语言,简单且层次清晰;一切皆对象,任何类型都可以用JSON表示,包括单不限于字符串、数字、对象
语法格式: ①对象表示为键值对 ②数据由逗号分隔(最后一个不加)
③花括号保存对象 ④方括号保存数组
var obj = {name : "Alice" , Age : "18"} //Java对象
var json = '{"name" : "Alice" , "Age" : "18"}' //Json字符串
二、 Java和Json互转
var obj = Json.parse(' {'name' : "Alice" , 'Age' : "18"} ') //json->java
var json = JSON.stringify( {name : "Alice" , Age : "18"} ) //java->json
三、Json基础类型
{
"key":"value", //字符串类型
"key2":-123.22, //数字类型(整型/浮点型)
"key3":{
"name":"Alice" //Json对象
QQ:88888888
}
"key4":[1,2,3,4,5] //数组类型(数字)
"key5":["a","b"."c","d"] //数组类型(字符)
"key6":[{"name":"Jack"},{"Skill":"Speail"},{"CodeName",123}] //对象组
"key7":null 空类型
}
四、C#解析Json字符串
1.利用字典型(Dictionary)序列化
string JsonData = “Json字符串”;
JavaScriptSerializer serializer = new JavaScriptSerializer();
Dictionary<string,object> json = (Dictionary<string, object>)serializer.DeserializeObject(JsonData);
string firstKey = json.ElementAt(0).Key;
string secondKey = json.ElementAt(1).Key;
2.利用Linq进行解析
需要添加using Newtonsoft.Json;
string jsonText = @"{""input"" : ""value"", ""output"" : ""result""}";
JsonReader reader = new JsonTextReader(new StringReader(jsonText));
while (reader.Read())
{
Console.WriteLine(reader.TokenType + "\t\t" + reader.ValueType + "\t\t" + reader.Value+"\r\n");
}
Console.ReadKey();