0

我正在使用 Philips Hue API,当我第一次尝试注册用户名时,我得到以下 JSON 响应。(我的目标是在“成功”对象中提取“用户名”的 GUID 值

[
   {"error":
      {"type":7,
       "address":"username",
       "description":"invalid value, YourHash, for parameter, username"
      }
   },
   {"success":
      {"username":
       "1234abcd1234abcd1234abcd1234abcd"
      }
   }
]

我不能使用动态关键字,因为我在 Windows Phone 中工作。我不想创建一个“成功”类,而不是拥有一个“用户名”类,让我获得这个一次性价值。

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

4

1 回答 1

0

如果您可以指望您的 JSON 格式准确且没有丢失信息,那么您可以执行以下操作:

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

当然,如果结果数组中没有具有“success”属性的对象,或者如果“success”属性不包含具有“username”属性的对象,这将会崩溃。如果您的 JSON 可能与您在上面发布的内容有所不同,那么您需要将其分解并添加空检查。

于 2013-05-08T01:16:00.917 回答