将字符串读取为 json

本文关键字:json 读取 字符串 | 更新日期: 2023-09-27 18:30:45

我想使用标准的.NET库,没有任何额外的引用。我在谷歌上搜索了一下,但没有找到任何可以使用的课程。

数据模型(属性)也基于配置文件,因此为对象创建类不是一个好主意,因为它只会使我的应用程序无法协调。

有什么建议吗?

将字符串读取为 json

我不确定是否有一种简单的方法可以仅使用框架类来做到这一点

不过,Json.Net 库(由Web API等使用)允许您非常轻松地执行此操作。有关示例,请参阅 http://www.newtonsoft.com/json/help/html/QueryingLINQtoJSON.htm。

JavaScriptSerializer 类具有用于在 JSON 对象和字符串之间进行转换的函数。也许你可以看看一些东西?

从 JSON.Net 库中获取源代码,将其添加到解决方案中,然后在项目中引用它。

https://github.com/JamesNK/Newtonsoft.Json/tree/master/Src/Newtonsoft.Json

您现在拥有了 JSON.Net 的所有功能,没有任何外部依赖项。

然后,当您厌倦了手动更新它时,请放宽"仅在框架中"规则并通过 Nuget 添加它,以便非常易于管理。

编辑:有两个内置的JSON序列化程序,但它们都以自己的特殊方式吸吮。

JavaScriptSerializer UTC DateTime 問題

JavaScriptSerializer和DataContractJsonSerializer充满了bug。请改用 json.net。甚至Microsoft在MVC4和其他最近的项目中也 ASP.Net 进行了这种切换。

你有没有从这里尝试过 SimpleJSON:http://wiki.unity3d.com/index.php/SimpleJSON?源代码的单页显示在该链接处。它在解析字符串方面做得很好。显然,它与 JSON.Net 无关。

如果将

System.Web.Extensions 的引用添加到项目中,则可以使用 JavaScriptSerializer 类将字符串反序列化为 json:

var json = new JavaScriptSerializer().Deserialize<MyType>(myString);

您也可以动态执行此操作,因此无需定义类型:

string myString = @"
{
    ""Hello"": 1,
    ""World"": ""FooBar""
}";
dynamic json = new JavaScriptSerializer().DeserializeObject(myString);
int hello = json["Hello"];
string world = json["World"];