如何提取此.NET动态对象的值?

时间:2014-03-14 07:14:52

标签: c# .net json dynamic json.net

使用Json.NET我将一些xml转换为json,然后将json反序列化为动态实例。

我似乎无法提取此属性的值: #text

这是立即调试输出值...

item.sellingStatus.currentPrice {
  "@currencyId": "AUD",
  "#text": "9.95"
} base: {
  "@currencyId": "AUD",
  "#text": "9.95"
} Type: Object

xml源是这个......

<item>
    <sellingStatus>
        <currentPrice currencyId="AUD">5.8</currentPrice>
    </sellingStatus>
</item>

和Json.NET将它转换成上面的json ...用那些疯狂的符号!

我如何抓住价值?

更新

  1. Here's the Json data是从Xml
  2. 创建的

1 个答案:

答案 0 :(得分:2)

我下载了Json.Net并执行了.NET4.0的反序列化过程。这段代码适合我:

dynamic root = JsonConvert.DeserializeObject(jsonInput);
foreach (var item in root.findItemsByKeywordsResponse.searchResult.item)
{
    string CurrencyID = item.sellingStatus.currentPrice["@currencyId"].Value;
    double Amount = double.Parse(item.sellingStatus.currentPrice["#text"].Value, System.Globalization.CultureInfo.InvariantCulture);
}

所以我可以说它看起来很简单。