博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSON.NET 简单的使用
阅读量:4500 次
发布时间:2019-06-08

本文共 2947 字,大约阅读时间需要 9 分钟。

JSON.NET()使用来将.NET中的对象转换为JSON字符串(序列化?),或者将JSON字符串转换为.NET中已有类型的对象(反序列化?)

首先为了例子随便定义一个类型:

public class Product{    public string Name { get; set; }    public DateTime Expiry { get; set; }    public decimal Price { get; set; }    public string[] Sizes { get; set; }    public override string ToString()    {        return string.Format("Name:{0},Expiry:{1},Price:{2},SizesCount:{3}"            , Name, Expiry, Price, Sizes.Length);    }}

初始化对象:

public static void Main(string[] passwordargs){    Product product = new Product()    {        Name = "android",        Expiry = DateTime.Now,        Price = 2000,        Sizes = new string[] { "1.5", "2.2", "4.1" }    };}

进行到JSON的转换:

Console.WriteLine(JsonConvert.SerializeObject(product));

输出结果:

{"Name":"android","Expiry":"2013-08-30T09:50:11.5147845+08:00","Price":2000.0,"Sizes":["1.5","2.2","4.1"]}

其它看起来一切正常,除了这个日期有点怪

格式化日期:

//设置日期时间的格式,与DataTime类型的ToString格式相同IsoDateTimeConverter iso = new IsoDateTimeConverter();iso.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";Console.WriteLine(JsonConvert.SerializeObject(product, iso));

输出结果:

{"Name":"android","Expiry":"2013-08-30 09:53:58","Price":2000.0,"Sizes":["1.5","2.2","4.1"]}

从JSON到对象的转换:

string str = "{\"Name\":\"android\",\"Expiry\":\"2013-08-30 09:53:58\",\"Price\":2000.0,\"Sizes\":[\"1.5\",\"2.2\",\"4.1\"]}";Product p = (Product)JsonConvert.DeserializeObject(str, typeof(Product));Console.WriteLine(p.ToString());

输出结果:

Name:android,Expiry:2013/8/30 9:53:58,Price:2000.0,SizesCount:3

从JSON到键值对的转换:

string strJson = @"{""Name1"": ""小明"",""Name2"": ""小花"",""Name3"": ""小红""}";Dictionary
_dictionary = JsonConvert.DeserializeObject
>(strJson);foreach (KeyValuePair
kp in _dictionary){ Console.WriteLine(kp.Key + ":" + kp.Value);}

输出结果:

Name1:小明 

Name2:小花 
Name3:小红

从字符串转换到JSON对象,以及JSON对象的简单使用:

string strJson2 = @"{ ""student"": { ""Name1"": ""小明"" , ""Name2"": ""小花"" , ""Name3"": ""小红""} }";JObject jsonObj = JObject.Parse(strJson2);Console.WriteLine(jsonObj["student"]["Name1"].ToString());Console.WriteLine(jsonObj["student"]["Name2"].ToString());Console.WriteLine(jsonObj["student"]["Name3"].ToString());

输出结果:

小明 

小花 
小红

直接生成JSON对象:

JObject json =    new JObject(    new JProperty("Channel",        new JObject(        new JProperty("title", "JSON"),        new JProperty("link", "JSON.NET"),        new JProperty("description", "JSON.NET Description"),        new JProperty("items",            new JArray(            new JObject(new JProperty("haha1", "123")),            new JObject(new JProperty("haha2", "456")),            new JObject(new JProperty("haha3", "789"))                )))));Console.WriteLine(json.ToString());

输出结果:

  "Channel": { 
    "title": "JSON", 
    "link": "JSON.NET", 
    "description": "JSON.NET Description", 
    "items": [ 
      { 
        "haha1": "123" 
      }, 
      { 
        "haha2": "456" 
      }, 
      { 
        "haha3": "789" 
      } 
    ] 
  } 
}

暂时先记录这么多,以后再继续补充

转载于:https://www.cnblogs.com/PearlRan/p/4833040.html

你可能感兴趣的文章
Python:yield关键字
查看>>
EasyRTSPClient:基于live555封装的支持重连的RTSP客户端RTSPClient
查看>>
EasyDarwin云存储方案调研:海康萤石云采用的是MPEG-PS打包的方式进行的存储
查看>>
MySQL巡检
查看>>
学习笔记之传说中的圣杯布局
查看>>
oh-my-zsh的使用
查看>>
共享内存的设计
查看>>
deque容器
查看>>
2017-2018-1 20155203 20155204 实验二 固件程序设计
查看>>
三方贸易-drop ship
查看>>
Android RenderScript 使用 Struct 及其下标的赋值
查看>>
【题解】BZOJ P1801 dp
查看>>
杂项-软件生命周期:软件生命周期
查看>>
小程序:小程序能力
查看>>
P1578 奶牛浴场 有障碍点的最大子矩形
查看>>
OpenCV学习:体验ImageWatch
查看>>
socket_循环接收消息
查看>>
I/O基础之概念
查看>>
各种算法的优缺点:
查看>>
poj 2513 Colored Sticks 字典树
查看>>