2017-08-23 10 views
0

私はさまざまな例を私はstackoverflowで見つけたと公式のドキュメントwww.newtonsoft.comから試してみました。私はhttp://json2csharp.com/を使用して生成されたクラスを試してみましたが、私も、私はこのような単純なものどのようにdeserialse/JSONを解析する

dynamic jsonstring = IO.File.ReadAllText("DATA\\cprofile.json"); 
dynamic companydata = Json.Linq.JObject.Parse(jsonstring); 
dynamic CustomerNumber = companydata("CustomerNumber"); 
Interaction.MsgBox(CustomerNumber); 

を試みた配列

{ 
    "@odata.context": "http://localhost/WebApi/getDataCustomerData", 
    "value": [ 
     { 
      "CustomerNumber": "A001", 
      "ShortName": "Customer A" 
     }, 
     { 
      "CustomerNumber": "B001", 
      "ShortName": "Customer B" 
     } 
    ] 
} 

この

{ 
    "@odata.context": "http://localhost/WebApi/getDataCompanyData", 
    "value": [ 
     { 
      "ID": "001", 
      "Name": "Sample Company" 
     } 
    ] 
} 

、これを解析/デシリアライズするために苦労しています前にこのJSON構造を使っていませんでした。このようなJSON構造を扱う人は誰でも助言しますか?

注:これはリサイズ

+0

https://stackoverflow.com/a/34043555/1214800(リンクされた回答、受け入れられたものではありません)? – brandonscript

+0

'JsonProperty(" @ odata.context ")'を使って考えましたか? – Nkosi

答えて

1

であるあなたはそれだけでデシリアライズすることですそこから配列

public class Value { 
    public string CustomerNumber { get; set; } 
    public string ShortName { get; set; } 
} 

public class RootObject { 
    [JsonProperty("@odata.context")] 
    public string OdataContext { get; set; } 
    public IList<Value> value { get; set; } 
} 

で例えばJson.Net

と第二のスニペットをJsonPropertyの使用を検討することができます期待どおりのJSON。

var model = JsonConvert.DeserializeObject<RootObject>(json); 
var context = model.OdataContext; 

http://jsonutils.com/には、クラスの属性を設定する機能があります。唯一の捉え方は、適切なC#構文に準拠していないプロパティの名前を手動で変更する必要があるということでした。

関連する問題