我已将XML转换为JSON:
var json = JsonConvert.SerializeXmlNode(doc);
结果如下:
"author": {
"name": "Hey Guappo",
"yt:userId": "asfajgf346346fghsdgsWfiqcfr1pfQ"
}
我想访问yt:userId
。
我无法在.NET中执行此操作:
dynamic objectParsed = JObject.Parse(json);
var userID= (string)objectParsed.entry.author.yt:userId;
因为:
。那么如何在JSON中管理Namespace呢?我有:
var yt = XNamespace.Get("http://gdata.youtube.com/schemas/2007");
但我不知道如何应用它......
答案 0 :(得分:3)
试试这个:
JObject json = JObject.Parse(json);
string userId = json["author"]["yt:userId"].ToString();
答案 1 :(得分:0)
这将适用于动态就好。您不必使用JObject。另外,我强调了你可以使用的事实。符号UP到你的“yt:userId”,此时你需要按字符串值索引。
dynamic objectParsed = JObject.Parse(json);
string userId = json.author["yt:userId"].ToString();
正如Tobberoth指出的那样,没有理由不使用JObject,但如果您愿意,也没有使用动态的技术限制。
作为旁注,请避免使用显式强制转换为字符串(字符串)。始终使用ToString()。