zoukankan      html  css  js  c++  java
  • 在.NET中使用Newtonsoft.Json转换,读取,写入

    

    using Newtonsoft.Json;
    using Newtonsoft.Json.Converters;
    
    //把Json字符串反序列化为对象
    目标对象 = JavaScriptConvert.DeserializeObject(JSON字符串, typeof(目标对象));
    //把目标对象序列化为Json字符串
    
    string Json字符串 = JavaScriptConvert.SerializeObject(目标对象);
    
    1.引用Newtonsoft.Json.dll
    2.在项目中添加引用..
    序列化和反序列在.net项目中:
    
    Product product = new Product();
    
    product.Name = "Apple";
    product.Expiry = new DateTime(2008, 12, 28);
    product.Price = 3.99M;
    product.Sizes = new string[] { "Small", "Medium", "Large" };
    
    string output = JavaScriptConvert.SerializeObject(product);
    //{
    // "Name": "Apple",
    // "Expiry": new Date(1230422400000),
    // "Price": 3.99,
    // "Sizes": [
    //      "Small",
    //      "Medium",
    //      "Large"
    // ]
    //}
    
    Product deserializedProduct = (Product)JavaScriptConvert.DeserializeObject(output, typeof(Product));
    
    读取JSON
    
    string jsonText = "['JSON!',1,true,{property:'value'}]";
    
    JsonReader reader = new JsonReader(new StringReader(jsonText));
    
    Console.WriteLine("TokenType\t\tValueType\t\tValue");
    
    while (reader.Read())
    {
          Console.WriteLine(reader.TokenType + "\t\t" + WriteValue(reader.ValueType) + "\t\t" + WriteValue(reader.Value))
    }
    
    结果显示:
    TokenType ValueType Value 
    StartArray null null 
    String System.String JSON! 
    Integer System.Int32 1 
    Boolean System.Boolean True 
    StartObject null null 
    PropertyName System.String property 
    String System.String value 
    EndObject null null 
    EndArray null null
    
    JSON写入
    StringWriter sw = new StringWriter();
    JsonWriter writer = new JsonWriter(sw);
    
    writer.WriteStartArray();
    writer.WriteValue("JSON!");
    writer.WriteValue(1);
    writer.WriteValue(true);
    writer.WriteStartObject();
    writer.WritePropertyName("property");
    writer.WriteValue("value");
    writer.WriteEndObject();
    writer.WriteEndArray();
    
    writer.Flush();
    
    string jsonText = sw.GetStringBuilder().ToString();
    
    Console.WriteLine(jsonText);
    // ['JSON!',1,true,{property:'value'}]
    
    
  • 相关阅读:
    图像融合之拉普拉斯融合(laplacian blending)
    真实场景的虚拟视点合成(View Synthsis)详解
    真实场景的双目立体匹配(Stereo Matching)获取深度图详解
    OpenCV亚像素角点cornerSubPixel()源代码分析
    OpenCV角点检测goodFeaturesToTrack()源代码分析
    OpenCV角点检测源代码分析(Harris和ShiTomasi角点)
    引导图滤波(Guided Image Filtering)原理以及OpenCV实现
    OpenCV3.4两种立体匹配算法效果对比
    文件操作常用函数
    two Pass方法连通域检测
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1868809.html
Copyright © 2011-2022 走看看