zoukankan      html  css  js  c++  java
  • (推荐JsonConvert )序列化和反序列化Json

    在Json文本和.Net对象之间转换最快的方法是试用JsonSerializer

    JsonSerializer通过将.Net对象属性名称映射到Json属性名称,并为其复制值,将.Net对象转换为其Json等效项并再次返回。

    JsonConvert 

    对于要与JSON字符串进行转换的简单方案,请使用 SerializeObject()和 DeserializeObject() JsonConvert上的方法提供了一个易于使用的JsonSerializer包装器

    使用JsonConvert序列化和反序列化JSON
    Serializing and Deserializing JSON with JsonConvert
    Copy
    Product product = new Product();
    
    product.Name = "Apple";
    product.ExpiryDate = new DateTime(2008, 12, 28);
    product.Price = 3.99M;
    product.Sizes = new string[] { "Small", "Medium", "Large" };
    
    string output = JsonConvert.SerializeObject(product);
    //{
    //  "Name": "Apple",
    //  "ExpiryDate": "2008-12-28T00:00:00",
    //  "Price": 3.99,
    //  "Sizes": [
    //    "Small",
    //    "Medium",
    //    "Large"
    //  ]
    //}
    
    Product deserializedProduct = JsonConvert.DeserializeObject<Product>(output);
    JsonSerializer

    为了更好地控制对象的序列化方式,可以直接使用JsonSerializerJsonSerializer能够通过JsonTextReader 和JsonTextWriter直接读取和写入JSON文本到流也可以使用其他类型的JsonWriters,例如 JTokenReader / JTokenWriter,将对象转换为LINQ转换为JSON对象,或 转换为BsonReader / BsonWriter,以转换为BSON和从BSON转换。

    Serializing JSON to a Stream with JsonSerializer
    
    Product product = new Product();
    product.ExpiryDate = new DateTime(2008, 12, 28);
    
    JsonSerializer serializer = new JsonSerializer();
    serializer.Converters.Add(new JavaScriptDateTimeConverter());
    serializer.NullValueHandling = NullValueHandling.Ignore;
    
    using (StreamWriter sw = new StreamWriter(@"c:json.txt"))
    using (JsonWriter writer = new JsonTextWriter(sw))
    {
        serializer.Serialize(writer, product);
        // {"ExpiryDate":new Date(1230375600000),"Price":0}
    }

    参阅:https://www.newtonsoft.com/json/help/html/SerializingJSON.htm

  • 相关阅读:
    Iterator接口源码阅读
    Iterator接口实现类
    Enumeration接口源码阅读
    lambda表达式
    方法引用
    JAVA并发之AQS概述
    牛牛取快递——从dfs到dijkstra以及堆优化的dijkstra
    牛客2018java模拟编程题
    排序算法java实现以及简易性能测试
    java 死锁例子以及闭锁使用确保死锁产生
  • 原文地址:https://www.cnblogs.com/AndyChen2015/p/9602838.html
Copyright © 2011-2022 走看看