.NET 4.0 是否有 JSON 解析器?
理想情况下是这样的:
String jsonText = GetTheJsonFromTheInternet();
var json = JsonValue.Parse(jsonText);
现在我有一组嵌套的键值对。
使用 JSON.net
我不想要的是必须创建一组对象来匹配 JSON。我在问 解析 JSON,而不是 反序列化 JSON。你可以假装这是因为我不知道 JSON 的结构。
类似于您解析 XML 的方式:
String xmlText = GetTheXmlFromTheInternet();
XmlDocument doc = new XmlDocument();
doc.LoadXml(XmlText);
现在我有一组嵌套的名称-值-属性。您不必创建对象来表示 XML DOM 树;您解析一串 XML,现在可以轻松导航和查找内容。
为什么不直接使用 JsonValue.Parse()?
因为:
System.Json.dll
中找到)直到 .NET Framework 4.5 才可用。 编写我自己的 JSON 解析器需要几天时间(以使其正确和良好)。
我已经通过了 JSON.net documentation .我不知道它是否支持 JSON 解析。
最佳答案
使用 Newtonsoft.Json.JsonConvert.DeserializeObject
.它将返回 JObject
或 JArray
.您可以对它们使用所有 Linq 技巧。
您还可以分配 JsonConvert.DeserializeObject
的结果至 dynamic
并使用鸭子打字
一些例子:
例子
String jsonText =
@"{
""files"":[{
""url"":""http://us.battle.net/auction-data/x/auctions.json"",
""lastModified"":1369051860000
}]
}";
JToken data = JObject.Parse(jsonText);
String url = (String)data["files"][0]["url"];
Int64 lastModified = (Int64)data["files"][0]["lastModified"];
关于.net - 将 JSON 解析为 .NET 4.0 中的非对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16652763/