zoukankan      html  css  js  c++  java
  • JSON Serialization/Deserialization in C#

    因为对C#不是特别熟悉,但是最近写个c#的demo,需要对获取的的json字符串进行解析,其实Newtonsoft.Json也可以达到效果,具体方法请见评论。

    另外了解到System.Web.Script.Serialization也支持想要的功能(http://procbits.com/2011/04/21/quick-json-serializationdeserialization-in-c)

    首先,在工程中增加引用:System.Web.Extensions

    针对比较简单的JSON String

    {
    "some_number": 108.541, 
    "date_time": "2011-04-13T15:34:09Z", 
    "serial_number": "SN1234"
    }

    你可以用如下方式将它解析为一个Dictionary :

    using System.Web.Script.Serialization;
    
    var jss = new JavaScriptSerializer();
    var dict = jss.Deserialize<Dictionary<string,string>>(jsonText);
    Console.WriteLine(dict["some_number"]); //outputs 108.541

    针对比较复杂的JSON String

    {
    "some_number": 108.541, 
    "date_time": "2011-04-13T15:34:09Z", 
    "serial_number": "SN1234"
    "more_data": {
      "field1": 1.0
      "field2": "hello" 
      }
    }

    解析方式如下:

    using System.Web.Script.Serialization;
    
    var jss = new JavaScriptSerializer();
    var dict = jss.Deserialize<Dictionary<string,dynamic>>(jsonText);
    
    Console.WriteLine(dict["some_number"]); //outputs 108.541
    Console.WriteLine(dict["more_data"]["field2"]); //outputs hello

    其中more_data字段被解析成一个Dictionary
    另外,还可以使用另一种方式:

    using System.Web.Script.Serialization;
    
    var jss = new JavaScriptSerializer();
    var dict = jss.Deserialize<dynamic>(jsonText);
    
    Console.WriteLine(dict["some_number"]); //outputs 108.541
    Console.WriteLine(dict["more_data"]["field2"]); //outputs hello

    另外,Serialization 同样比较简单

    using System.Web.Script.Serialization;
    
    var jss = new JavaScriptSerializer();
    var dict = jss.Deserialize<dynamic>(jsonText);
    
    var json = jss.Serialize(dict);
    Console.WriteLine(json)

    如需转载,请声明,如有帮助,记得关注铁柱,后面的内容更精彩

  • 相关阅读:
    Python Generators(生成器)--yield
    [带你飞]一小时带你学会Python
    [Effective C++ --032]确定你的public继承塑模出is-a
    [Effective C++ --031]将文件间的编译依存关系降至最低
    [Effective C++ --030]透彻了解inlining的里里外外
    [Effective C++ --029]为“异常安全”而努力是值得的
    [Effective C++ --028]避免返回handles指向对象内部成分
    unity 获取本机ip地址
    unity 局域网游戏开发知识点
    unity 中函数调用的顺序
  • 原文地址:https://www.cnblogs.com/art-geek/p/12497533.html
Copyright © 2011-2022 走看看