0

将 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

如何解决这个问题?

提前致谢!

4

2 回答 2

2

你不能。那不是有效的json。字段名称必须用引号引起来。尝试解析时,所有 json 解析工具都会抛出。

您可以在反序列化之前对其进行处理并将其转换为有效的 json,但实际上,您需要在 API 端进行更正。没有客户会使用它。

于 2013-05-09T18:13:48.523 回答
0

如何解决这个问题?

(注意:我无法更改此 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);
于 2013-05-09T18:26:13.300 回答