我正在使用飞利浦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检查。