2017-08-23 7 views
2

WebAPIから次のJson形式が返されました。あなたは民主化を助けることができますか?HttpClientを使用してWebAPIのDeseriaize Json

{ 
    "@odata.context":"http://....... ","value":[ 
    **{ 
     "RecordNumber":"LDxxxx","RecordType":"Loan","PropertyAddress":{ "Address1":"601 xxxx","Address2":null,"Zip":"99999","City":"abc","State":"ab","County":"abcd" } 
     ,"Summary":{ "BorrowerName":null,"ProductCode":null,"Status":"Not Registered" } 
    }**,{ 
      "RecordNumber":"LDxxxx","RecordType":"Loan","PropertyAddress":{ "Address1":"601 xxxx","Address2":null,"Zip":"99999","City":"abc","State":"ab","County":"abcd" } 
     ,"Summary":{ "BorrowerName":null,"ProductCode":null,"Status":"Not Registered" } 
     }, 
….] 
} 

私は要素には何が必要です。太字はAPIからのリターンで繰り返されるものです。次のような記述に合ったクラスを作成しました。

public class RootObject 
{ 
    [JsonProperty(PropertyName = "RecordNumber")] 
    public string RecordNumber { get; set; } 

    [JsonProperty(PropertyName = "RecordType")] 
    public string RecordType { get; set; } 

    [JsonProperty(PropertyName = "PropertyAddress")] 
    public PropertyAddress PropertyAddress { get; set; } 

    [JsonProperty(PropertyName = "Summary")] 
    public Summary Summary { get; set; } 
} 

は、以下を使用してJSON配列の最初のレコードをスキップすることができました「バリュー」の部分を得た....が、「値」オブジェクト

var dict = JsonConvert.DeserializeObject<Dictionary<string, object>>(forecast); 
foreach (var kv in dict.Skip(1)) 
{ 
    JArray jsonVal = JArray.Parse(kv.Value.ToString()); 
} 
の取得に成功していません

あなたのお手伝いを心より感謝します。

サティヤ

+1

が本当に正確なJSONということです(http://json2csharp.com/の助けを借りて)具体的なクラスにデシリアライズすることができますか? '**'とすべて? – maccettura

+0

Maccettura ...いいえ、私はそれらを同じフォーマットの繰り返しを示すためにそこに置きます。 – Satya

答えて

2

あなたは

var result = JsonConvert.DeserializeObject<SOTest.Result>(json); 

public class SOTest 
{ 
    public class PropertyAddress 
    { 
     public string Address1 { get; set; } 
     public object Address2 { get; set; } 
     public string Zip { get; set; } 
     public string City { get; set; } 
     public string State { get; set; } 
     public string County { get; set; } 
    } 

    public class Summary 
    { 
     public object BorrowerName { get; set; } 
     public object ProductCode { get; set; } 
     public string Status { get; set; } 
    } 

    public class Value 
    { 
     public string RecordNumber { get; set; } 
     public string RecordType { get; set; } 
     public PropertyAddress PropertyAddress { get; set; } 
     public Summary Summary { get; set; } 
    } 

    public class Result 
    { 
     [JsonProperty("@odata.context")] 
     public string Context { get; set; } 
     public List<Value> Value { get; set; } 
    } 
} 
関連する問題