将json字符串解析为对象时出错。我正在使用system.json来解析json字符串。
JSON文件:(注意:我无法更改此json文件的结构,因为它已生成)
{
title: "My Title",
log: "",
nid: "1234",
type: "software",
language: "EN",
created: "1364480345",
revision_timestamp: "1366803957",
body: {
und: [
{
value: "abc",
summary: "def"
}
]
}
}
C#代码:
string jsonString = new WebClient().DownloadString(".......MyJson.json"); //For test purpose
var obj = JsonObject.Parse (jsonString); ///<--- At this line the exception is thrown
例外:
System.ArgumentException has been thrown.
Invalid JSON string literal format. At line 1, column 2
如何解决这个问题?
提前致谢!
答案 0 :(得分:2)
你做不到。这不是有效的json。字段名称必须用引号括起来。尝试解析时,所有json解析工具都会抛出。
您可以在反序列化之前处理它并将其转换为有效的json,但实际上,您需要更正它的API端。没有客户会使用它。
答案 1 :(得分:1)
如何解决这个问题?
(注意:我无法更改此json文件的结构,因为它已生成)
轻松,使用json.Net。它对你的json没有任何问题
var j = JObject.Parse(jsonString);
您甚至可以使用dynamic
关键字
dynamic j = JObject.Parse(jsonString);
Console.WriteLine("{0},{1}", j.title, j.body.und[0].value);