zoukankan      html  css  js  c++  java
  • JSON.Net学习笔记01

    使用Newtonsoft.Json这是一个开源的Json.Net库。

    下载地址:http://json.codeplex.com/releases/view/50552。当前版本为 Release 8

    从下载到的源代码中获取Newtonsoft.Json.Net20.dll,添加到自己的工程中。

    using Newtonsoft.Json;

    定义类:

     public class Message
        {
            public string Address { get; set; }
            [JsonProperty(TypeNameHandling = TypeNameHandling.All)]
            public object Body { get; set; }
        }
        public class SearchDetails
        {
            public string Query { get; set; }
            public string Language { get; set; }
        }

    测试:

               Message message = new Message
                {
                    Address = "http://google.com",
                    Body = new SearchDetails { Query = "Json.Net", Language = "en-us" }
                };
                string jsonMsg = JsonConvert.SerializeObject(message, Formatting.Indented);//Indented表示以缩进形式显示结果
                System.Diagnostics.Debug.Write(jsonMsg);
                Message deserialized = JsonConvert.DeserializeObject<Message>(jsonMsg);
                SearchDetails searchDetails = (SearchDetails)deserialized.Body;
                Response.Write(searchDetails.Query + "," + searchDetails.Language + "<br/>");

    Debug输出结果格式:

    {
      "Address": "http://google.com",
      "Body": {
        "$type": "TestJsonSerialization.SearchDetails, TestJsonSerialization",
        "Query": "Json.Net",
        "Language": "en-us"
      }
    }

    :1.JsonProperty标记字段或属性,用来控制它作为一个Json对象的属性序列化。

           2.TypeNameHandling 用来为Json序列化指定类型名。它有几个枚举值:

    MemberDescription
    None Do not include the .NET type name when serializing types. 
    Objects Include the .NET type name when serializing into a JSON object structure. 
    Arrays Include the .NET type name when serializing into a JSON array structure. 
    Auto Include the .NET type name when the type of the object being serialized is not the same as its declared type. 
    All Always include the .NET type name when serializing. 
  • 相关阅读:
    Consul的反熵
    Swift:一个基于.NET Core的分布式批处理框架
    C03:架构,面向人的设计,面向业务的建模
    架构-W01-食堂就餐卡系统设计
    架构C02:商业模式与架构设计
    架构C01: 什么是架构?为什么做架构?架构师需要做什么?
    程序中的日志
    物联网这一次应该是认真的!
    移动端H5混合开发设置复盘与总结
    span 英文数字保持一行,中文自动换行
  • 原文地址:https://www.cnblogs.com/MyFlora/p/2451276.html
Copyright © 2011-2022 走看看