あなたはストレートjsonを持っていて、それをオブジェクトに変換して意味のある値を取得しようとしていますか?
I 個人的には、できる限りのクラスで作業することを好みます。私は生のjsonをC#コンバータのjsonに投げます。私はJsonUtilsが個人的に好きです。 (私は団結しておらず、ただの素晴らしい無料サービスしかありません)。そこには他にもいくつかのものがありますが、最も頑強なようです。
あなたがそこにあなたの生のJSONを投げる場合は、以下のクラスを取得:
public class MyClassList
{
public int Id { get; set; }
public string Amount { get; set; }
}
public class ReturnValues
{
public int ErrorCode { get; set; }
public string ErrorDescription { get; set; }
}
public class GetMyClassListResult
{
public IList<MyClassList> MyClassList { get; set; }
public ReturnValues ReturnValues { get; set; }
}
public class Example
{
public GetMyClassListResult GetMyClassListResult { get; set; }
}
よしを。モデルが完成したので、jsonを非直列化することができます。 jsonを操作するための最も一般的なライブラリはです。NuGetまたは直接ダウンロードで入手できます。
ダウンロードする場合は、そのDLLへの参照を追加する必要があります。 Nugetは、インストール時に自動的に参照します。あなたのクラスファイルの先頭に
、あなたは他のusing
文と一緒に
using Newtonsoft.Json;
を追加する必要があります。
あなたの方法ではJsonConvert.Deserialize<List<Example>>(json)
と呼ぶので、あなたのコレクションはPOCOになります。
コレクションにはオブジェクトが1つしかないので、コレクションで.First()
を呼び出して、Id
とAmount
プロパティで2つの値にアクセスできます。 System.Linq
がusing
ステートメントにも含まれていることを確認する必要があります。
全コード:
var json = @"{\"GetMyClassListResult\":{\"MyClassList\":[{\"Id\":1,\"Amount\":\"5,00\"},{\"Id\":2,\"Amount\":\"10,00\"},{\"Id\":3,\"Amount\":\"20,00\"},{\"Id\":4,\"Amount\":\"25,00\"}],\"ReturnValues\":{\"ErrorCode\":1,\"ErrorDescription\":\"Successful\"}}}";
var collection = JsonConvert.Deserialize<List<Example>>(json);
var x = collection.First();
var amount = x.Amount;
var id = x.Amount;
あなたは、あなたが合うように操作したり、これらの変数で動作するように自由です。 :)
私はそれを読むことができるようにあなたのJsonをフォーマットすることから始めることができます。 –