我应该如何在c#中解析这个json响应?

时间:2013-02-04 23:42:30

标签: c# jquery .net json

我对json的回应有点新鲜。我一直在使用json.net将我的回复解析为自定义对象。但我觉得这种反应是一种标准格式,我应该能够轻松解析。

这是一个回应样本。

 {"jquery": 
[
    [0, 1, "call", ["body"]], 
    [1, 2, "attr", "find"], 
    [2, 3, "call", [".status"]], 
    [3, 4, "attr", "hide"], 
    [4, 5, "call", []], 
    [5, 6, "attr", "html"], 
    [6, 7, "call", [""]], 
    [7, 8, "attr", "end"], 
    [8, 9, "call", []], 
    [0, 10, "call", ["body"]], 
    [10, 11, "attr", "captcha"], 
    [11, 12, "call", ["uIP22Wow9xa68aLQ0tl1e9Uiiinracdj"]]
]}

这是标准的还是我应该继续使用我的自定义对象?

由于

2 个答案:

答案 0 :(得分:1)

.NET 4.5包含一个JavaScriptSerializer Class,可以轻松解析任何内容。

我通常会像这样解析我的数据..

private struct MyStruct
{
  public System.Collections.ArrayList jquery { get; set; }
}

string testJson = "{\"jquery\": [[0, 1, \"call\", [\"body\"]], [1, 2, \"attr\", \"find\"], [2, 3, \"call\", [\".status\"]], [3, 4, \"attr\", \"hide\"], [4, 5, \"call\", []], [5, 6, \"attr\", \"html\"], [6, 7, \"call\", [\"\"]], [7, 8, \"attr\", \"end\"], [8, 9, \"call\", []], [0, 10, \"call\", [\"body\"]], [10, 11, \"attr\", \"captcha\"], [11, 12, \"call\", [\"uIP22Wow9xa68aLQ0tl1e9Uiiinracdj\"]]]}";
MyStruct generic = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<MyStruct>(testJson);

enter image description here

答案 1 :(得分:0)

这是格式良好的JSON,其中一个对象名为"jquery"。它的值是一个数组,该数组的每个元素都是一个数组。内部数组包含几个值:两个数字,然后是一个字符串,最后是一个字符串或一个字符串的数组。

如果名为"jquery"的任何其他对象具有相同的结构,则无需任何建议。

在没有任何其他架构信息的情况下,通用JsonObject似乎是唯一有用的解析它的结构