0
私は問題に直面しています。 サーバーから複雑なJSON応答を逆シリアル化する必要がありますが、その一部だけが必要です。ここでJSONファイルの1つのプロパティをデシリアライズ
は一例です:
{
"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}
}
はまた、私は必要なクラスオブジェクトを取得するためにCsharp2jsonを使用し、私はちょうど私のニーズに応じてメニュークラスを変更:今すぐ
public class Menuitem
{
public string value { get; set; }
public string onclick { get; set; }
}
public class Popup
{
public IList<Menuitem> menuitem { get; set; }
}
public class Menu
{
public Popup popup { get; set; }
}
public class RootObjectJourney
{
public Menu menu { get; set; }
}
、どのように私はポップアップの価値と彼の子供が必要な場合私は逆順化するのですか?
すべての応答を表示してポップアップのみを選択してみませんか?すべての応答のdeserealisingはちょうどあなたの場合に必要なものよりわずかに高価です – Kirhgoph
あなたが持っているものは、あなたが説明したことを*すべき*すべき*。デシリアライザで実行するとどうなりますか?すなわち、 'var root = JsonConvert.DeserializeObject(json); var menuitems = root.menu.popup.menuitem; '? –
この場合、私はすべてをデシリアライズします。しかし、それは私の実際のJsonの単純化に過ぎません。 実際のjsonを取得するには、このURLでGetリクエストを行います。http://transport.opendata.ch/v1/connections?from=lausanne&to=fribourg これは非常に複雑で時間がかかります。 @MarcGravell「オブジェクト参照がオブジェクトのインスタンスに設定されていません」と表示されます。 –