我有这个代码:
string json2 = vc.Request(model.uri + "?fields=uri,transcode.status", "GET");
var deserial = JsonConvert.DeserializeObject<Dictionary<string, object>>(json2);
var transcode = deserial["transcode"];
var serial = JsonConvert.SerializeObject(transcode);
var deserial2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(serial);
var upstatus = deserial2["status"].ToString();
Run Code Online (Sandbox Code Playgroud)
我从服务器得到的json是:
{
"uri": "/videos/262240241",
"transcode": {
"status": "in_progress"
}
}
Run Code Online (Sandbox Code Playgroud)
在VS2017上运行,可以正常运行。
但在 VS2010 上出现以下错误:
无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型“System.Collections.Generic.Dictionary`2[System.String,System.Object]”,因为该类型需要 JSON 对象(例如 {"name ":"value"}) 以正确反序列化。要修复此错误,请将 JSON 更改为 JSON 对象(例如 {"name":"value"}),或者将反序列化类型更改为数组或实现集合接口(例如 ICollection、IList)的类型,例如 List,可以从 JSON 数组反序列化。还可以将 JsonArrayAttribute 添加到类型中,以强制其从 JSON 数组进行反序列化。路径 '',第 1 行,位置 1。
我正在使用 Newtonsoft.Json。
任何想法?
由于某些原因,最佳答案已被删除,所以我将其发布:
var deserial = JsonConvert.DeserializeObject<dynamic>(json2);
string upstatus = string.Empty;
upstatus = deserial.transcode.status.ToString();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13666 次 |
| 最近记录: |