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)
如需转载,请声明,如有帮助,记得关注铁柱,后面的内容更精彩
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端