我需要反序列化以下内容:
{"result":{"success":true,"value":"8cb2237d0679ca88db6464eac60da96345513964"}}
使用Newtonsoft.Json
到C#对象WebClient wc = new WebClient();
var json = wc.DownloadString(url);
Worker w = JsonConvert.DeserializeObject<Worker>(json);
这是类代码:
public class Worker
{
[JsonProperty("success")]
public string success { get; set; }
[JsonProperty("value")]
public string value { get; set; }
}
代码没有错误,但成功和值为空。
答案 0 :(得分:5)
你错过了外部物体。
public class Worker
{
[JsonProperty("result")]
public Result Result { get; set; }
}
public class Result
{
[JsonProperty("success")]
public string Success { get; set; }
[JsonProperty("value")]
public string Value { get; set; }
}
答案 1 :(得分:0)
我不熟悉那个库,但成功和结果看起来都是对象“result”的属性
您是否尝试过[JsonProperty("result.success")]
?
编辑:好吧,不管它看起来像是一个范围问题。查看文档后,这是我的新建议:
public class Result{
[JsonProperty("result")]
public Worker result { get; set; }
}
然后是Json.Convert.Deserialize<Result>(json)
。
答案 2 :(得分:0)
您不需要任何课程,可以使用dynamic
关键字
string json = @"{""result"":{""success"":true,""value"":""8cb2237d0679ca88db6464eac60da96345513964""}}";
dynamic dynObj = JsonConvert.DeserializeObject(json);
Console.WriteLine("{0} {1}", dynObj.result.success, dynObj.result.value);