1,
LINQ to JSON 常用实例1:
JObject o = JObject.Parse(@"{
'CPU': 'Intel',
'Drives': [
'DVD read/writer',
'500 gigabyte hard drive'
]
}");
string cpu = (string)o["CPU"];
Console.WriteLine(cpu);//CPU
string firstDrive = (string)o["Drives"][0];
Console.WriteLine(firstDrive);// DVD read/writer
IList<string> allDrives = o["Drives"].Select(t => (string)t).ToList();
foreach (var item in allDrives)
{
Console.WriteLine(item); // DVD read/writer
//500 gigabyte hard drive
}
2
Parsing JSON 将json 字符串转换成对象
string json = @"{
'CPU': 'Intel',
'Drives': [
'DVD read/writer',
'500 gigabyte hard drive'
],
'Mouses':{
'one':'小米',
'two':'戴尔'
}
}";
JObject computer = JObject.Parse(json);
Console.WriteLine(computer.First.ToString());//"CPU": "Intel"
Console.WriteLine(computer.Last.ToString()); //"Mouses": { "one": "小米","two": "戴尔"}
string one = computer["Mouses"]["one"].ToString(); //小米
Console.WriteLine(one);
//2.转化数组
string json2 = @"['张三','李四','王五']";
JArray array2 = JArray.Parse(json2);
Console.WriteLine(array2.Type);//Array
Console.WriteLine(array2[1]); //李四
string json3 = @"[{name:'张三'},{name:'李四'}]";
JArray array3 = JArray.Parse(json3);
Console.WriteLine(array3.Type);//Array
Console.WriteLine(array3[1]);//{ "name": "李四" }
//3.转化Json 文件
using (StreamReader sr = File.OpenText(@"F:\ABCSolution\JsonSolution\JsonSolution\Data\json1.json"))
{
JObject o = (JObject)JToken.ReadFrom(new JsonTextReader(sr));
Console.WriteLine(o["CPU"]);//Intel
//如果没有找到抛出异常
//举例说明,只是获取 o["CPU"] 为空不会抛出异常,
//o["CPU"]["one"] 如果o["CPU"] 为空就会抛出异常
string result = (string)o["Mouses"]["one"]; //小米
Console.WriteLine(result);
}
3
Creating JSON 将对象属性转换成json 字符串
// 动态生成json字符串
//1.创建数组
JArray array = new JArray();
array.Add(new JValue("张三"));
array.Add(new JValue("李四"));
string json1 = array.ToString();
Console.WriteLine(json1);
//[
// "张三",
// "李四"
//]
//2.创建对象
JObject obj = new JObject();
obj.Add("name",new JValue("张三"));
obj.Add("age",new JValue("20"));
string json2 = obj.ToString();
Console.WriteLine(json2);
//{
//"name": "张三",
// "age": "20"
//}
//3.创建对象方式2,使用匿名对象
JObject obj2 = JObject.FromObject(new { name = "李四", Birthday = DateTime.Now });
string json3 = obj2.ToString();
Console.WriteLine(json3);
//{
//"name": "李四",
// "Birthday": "2016-09-09T14:53:23.0307889+08:00"
//}