登录 / 注册
C# Newtonsoft.Json之LINQ To Json实例(一)
发布时间:2018-10-26 10:35:10 查看:5656
一、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
    }

二、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);
    }

三、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"
    //}
---------------------
作者:天马3798
来源:CSDN
原文:https://blog.csdn.net/u011127019/article/details/52486867
版权声明:本文为博主原创文章,转载请附上博文链接!
宁夏银川舜新艺软件开发
ShunXinyi Soft develop
主要经营
软件开发,网站制作,网页设计,移动应用(安卓、苹果),微信,微网站,
FLASH动画,电子商务,计算机软硬件及网络设备等。
电话:18695132945 QQ:23923027
舜新艺软件开发 宁ICP备16001093号-1 宁公网安备 64010602000809号