c# - 获取 JSON 对象节点

标签 c# asp.net json

我有一个 json 对象,我想获取以下值: 实体 > 媒体 > 大小 > 大 > h

有没有办法像 XML -> Xpath 方法那样获取它?

这是与问题无关的额外行,只是因为......

{
  "created_at": "Sun, 01 Jan 2012 17:05:32 +0000",
  "entities": {
    "user_mentions": [
      {
        "screen_name": "nurdanterbiyik",
        "name": "nurdan",
        "id": 264782080,
        "id_str": "264782080",
        "indices": [
          0,
          15
        ]
      }
    ],
    "media": [
      {
        "id": 153522253777219584,
        "id_str": "153522253777219584",
        "indices": [
          44,
          64
        ],
        "media_url": "http://p.twimg.com/AiFrrSmCMAAdEID.jpg",
        "media_url_https": "https://p.twimg.com/AiFrrSmCMAAdEID.jpg",
        "url": "http://t.co/ZwHN9gvO",
        "display_url": "pic.twitter.com/ZwHN9gvO",
        "expanded_url": "http://twitter.com/emelkiraac/status/153522253773025280/photo/1",
        "type": "photo",
        "sizes": {
          "large": {
            "w": 536,
            "h": 800,
            "resize": "fit"
          },

最佳答案

使用 JSON.NET您可以通过多种方式读取数据,而无需将 JSON 文本反序列化为对象。这是一个简化的示例:

string json = @" {
""created_at"": ""Sun, 01 Jan 2012 17:05:32 +0000"",
  ""entities"": {
    ""media"": [{
      ""type"": ""photo"",
      ""sizes"": {
        ""large"": {
          ""w"": 536,
          ""h"": 800,
          ""resize"": ""fit""
        }
      }
    }]
  }
}
";

JObject o = JObject.Parse(json);
int h = (int)o["entities"]["media"][0]["sizes"]["large"]["h"];
int h2 = (int)o.SelectToken("entities.media[0].sizes.large.h");

关于c# - 获取 JSON 对象节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8695524/

相关文章:

c# - 最佳实践是使用模型还是简单属性?

c# - 在新标签页中打开链接 selenium c#

c# - 如何通过 WCF 设置 SSL?

javascript - 如何使用 JavaScript 将 JSON 中的 PHP 时间戳转换为日期和时间

java - 如何在使用 gson 创建的 Json 中添加自定义对象

c# - 从 Azure Active Directory 获取 MVC Web App 中的 samAccountName 名称

c# - 如何处理执行区域受限的分配?

asp.net - 从粗框控件中获取值

c# - 我的局部 View 每次都会导致我的应用程序崩溃

javascript - 使用随机数据生成 JSON