使用JSON.. NET查询一次性对象



我正在使用飞利浦Hue API,当我第一次尝试注册用户名时,我得到以下JSON响应。(我的目标是在"success"对象

中提取"username"的GUID值)
[
   {"error":
      {"type":7,
       "address":"username",
       "description":"invalid value, YourHash, for parameter, username"
      }
   },
   {"success":
      {"username":
       "1234abcd1234abcd1234abcd1234abcd"
      }
   }
]

我不能使用动态关键字,因为我在Windows Phone上工作。我不想创建一个"成功"类,而不是包含一个"用户名"类,让我获得这个一次性值。

是否有一种简单的方法来遍历这个一次性响应,以便我可以简单地获得用户名值?

如果你可以指望你的JSON是精确的格式,没有丢失的信息,那么你可以这样做:

string GetUserName(string json)
{
    return JArray.Parse(json)
        .Children<JObject>()
        .First(o => o["success"] != null)["success"]["username"]
        .ToString();
}

当然,如果结果数组中没有具有"success"属性的对象,或者"success"属性不包含具有"username"属性的对象,这将会爆炸。如果您的JSON可能偏离您上面发布的内容,那么您需要将其分解并添加null检查。

相关内容

  • 没有找到相关文章