0

我已将 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 中管理命名空间呢?我有:

var yt = XNamespace.Get("http://gdata.youtube.com/schemas/2007");

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

4

2 回答 2

3

尝试这个:

JObject json = JObject.Parse(json);
string userId = json["author"]["yt:userId"].ToString();
于 2013-11-07T14:39:09.763 回答
0

这将适用于动态就好了。您不必使用 JObject。此外,我强调了您可以使用 . 符号直到您的“yt:userId”,此时您需要按字符串值进行索引。

dynamic objectParsed = JObject.Parse(json);
string userId = json.author["yt:userId"].ToString();

正如 Tobberoth 指出的那样,确实没有理由不使用 JObject,但如果您愿意,使用动态也没有技术限制。

作为旁注,请避免使用 (string) 对字符串进行显式强制转换。始终使用 ToString()。

于 2013-11-07T14:54:05.027 回答