2

以下を逆シリアル化する必要があります。

{"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; }
}

コードはエラーになりませんが、成功は null です。

4

3 に答える 3

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; }
}
于 2013-01-28T19:56:42.427 に答える
0

私はそのライブラリに精通していませんが、成功と結果はオブジェクト「結果」の両方のプロパティに見えます

試しました[JsonProperty("result.success")]か?

編集:まあ、スコープの問題のように見えますが。ドキュメントを見た後、これは私の新しい提案です:

public class Result{
 [JsonProperty("result")]
 public Worker result { get; set; }
}

Json.Convert.Deserialize<Result>(json)代わりに。

于 2013-01-28T19:56:14.667 に答える
0

クラスは必要なく、dynamicキーワードを利用できます

string json = @"{""result"":{""success"":true,""value"":""8cb2237d0679ca88db6464eac60da96345513964""}}";

dynamic dynObj = JsonConvert.DeserializeObject(json);
Console.WriteLine("{0} {1}", dynObj.result.success, dynObj.result.value);
于 2013-01-28T19:58:17.190 に答える