从c#中的json响应中获取对象属性值
本文关键字:获取 取对象 属性 响应 中的 json | 更新日期: 2023-09-27 17:58:49
我正在尝试访问"success"属性以获取其值。现在,它碰到了一个陷阱,说"对象引用没有设置为对象的实例。"我如何获得字符串值?
{"success":true,"next":"/locations","amount":325,"keys":3,"学分":6185}
private static void postComplete(object sender, UploadStringCompletedEventArgs e)
{
object result = JsonConvert.DeserializeObject<object>(e.Result);
try{
PropertyInfo pi = result.GetType().GetProperty("success");
String success = (String)(pi.GetValue(result, null));
Console.Write(success);
}
catch (Exception f) {
Console.Write(f);
}
您正在将其反序列化为一个直接的object
。。object
没有名为success
的属性。
另一种选择是键入一个表示以下内容的类:
class ExampleClass {
public bool success { get; set; }
public string next { get; set; }
public int amount { get; set; }
public int keys { get; set; }
public int credits { get; set; }
}
然后这样称呼它:
object result = JsonConvert.DeserializeObject<ExampleClass>(e.Result);
// ^^^^^^^^^^^^
// This
try{
PropertyInfo pi = result.GetType().GetProperty("success");
bool success = (bool)(pi.GetValue(result, null));
Console.Write(success); // True
}
catch (Exception f) {
Console.Write(f);
}
甚至更好。。完全删除:
ExampleClass example = JsonConvert.DeserializeObject<ExampleClass>(e.Result);
Console.WriteLine(example.success); // True