0
我遇到问题。 我想反序列化来自服务器的复杂JSON响应,但我只需要它的一部分。仅反序列化JSON文件的一个属性
下面是一个例子:
{
"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; }
}
现在,如何如果我只需要弹出窗口值和他的孩子,我是否反序列化?
你为什么不把所有的回答都选出来并选择Popup?所有响应的解除效果只比您的需求稍贵一些 – Kirhgoph
您已经*应该*已经*执行您所描述的内容。当你通过解串器运行时会发生什么?即'var root = JsonConvert.DeserializeObject(json); var menuitems = root.menu.popup.menuitem;'? –
在这种情况下,我会反序列化所有的东西。但这只是我实际Json的简化。 对此URL进行获取请求以获得实际的json:http://transport.opendata.ch/v1/connections?from=lausanne&to=fribourg 这是极其复杂和漫长的。 @MarcGravell它说:“对象引用未设置为对象的实例。” –