如何在json上访问此字段?

时间:2013-11-07 14:36:26

标签: c# .net xml json

我已将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");

但我不知道如何应用它......

2 个答案:

答案 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()。