我对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"]]
]}
这是标准的还是我应该继续使用我的自定义对象?
由于
答案 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);
答案 1 :(得分:0)
这是格式良好的JSON,其中一个对象名为"jquery"
。它的值是一个数组,该数组的每个元素都是一个数组。内部数组包含几个值:两个数字,然后是一个字符串,最后是一个字符串或一个字符串的数组。
如果名为"jquery"
的任何其他对象具有相同的结构,则无需任何建议。
在没有任何其他架构信息的情况下,通用JsonObject似乎是唯一有用的解析它的结构