读一个字符串作为json

时间:2016-01-18 12:03:24

标签: c# .net json .net-4.5

我想使用标准.NET库而不需要任何额外的引用。我在Google上搜索过,但我找不到任何可以使用的课程。

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

任何建议?

5 个答案:

答案 0 :(得分:0)

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

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

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

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

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

JavaScriptSerializer UTC DateTime issues

  

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

答案 1 :(得分:0)

我不确定使用框架类

是否有一种简单的方法可以做到这一点

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

答案 2 :(得分:0)

JavaScriptSerializer类具有在JSON对象和字符串之间进行转换的功能。也许你可以看一下吗?

答案 3 :(得分:0)

您是否从这里尝试过SimpleJSON:http://wiki.unity3d.com/index.php/SimpleJSON?单个源代码页面显示在该链接上。它可以很好地解析字符串。显然,它在JSON.Net上什么都没有。

答案 4 :(得分:0)

如果向项目添加对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"];