如何在C#中解析这个Json,我尝试使用JsonConvert.DeserializeObject
,但我认为我的班级不适合JsonConvert
。
我在Json收到回复,看起来像这样:
"{"response":[{"id5":[1,43,42]},{"id22":[7,9,10,3]}]}"
或
"
{
"response":
[
{"id5":[1,43,42]},
{"id22":[7,9,10,3]}
]
}
"
更新/解决: 我对json很熟悉,我有任务生成一些请求和答案格式取决于我的请求字符串..所以我的请求字符串生成错误,我收到了无效的Json。
正确生成:
sb.Append("return [");
foreach (string id in ids)
{
string q = "{\"id\" : " + id + ", \"friends\": :API.friends.get({user_id:" + id + "})}";
sb.Append(q);
sb.Append(',');
}
sb[sb.Length - 1] = ']';
sb.Append(';');
答案 0 :(得分:0)
你看过Json课吗? https://msdn.microsoft.com/en-us/library/windows/apps/br229889.aspx
你需要这样的东西(没有编译):
JsonObject obj = JsonObject.Parse(your_resonse_string);
IJsonValue siri = ParseJsonObject(obj, "response");
JsonArray ids= VehicleMonitoringDelivery.GetArray();
foreach (var id in ids)
{
(...)
}
答案 1 :(得分:0)
您可以使用此类反序列化您的json
public class MyResponse
{
public List<Dictionary<string,List<int?>>> response { get; set; }
}
现在你的代码将是
var obj = JsonConvert.DeserializeObject<MyResponse>(json);
答案 2 :(得分:-1)
很难像类一样代表这个JSON。
看起来它是以错误的方式生成的。
如果你可以改变生成,最好以这种方式做到:
"
{
"response":
[
{"id":"id5","array":[1,43,42]},
{"id":"id22":,"array":[7,9,10,3]}
]
}
"
P.S。我添加了“id”和“array”
如果手动上课很难,请尝试this。