【发布时间】:2015-02-20 16:30:46
【问题描述】:
我正在开发一个需要接受 json 或 xml 数据的 Web API 2 服务。在 XML 方面,一切都很好,在 JSON 方面,只要有对象数组,该节点的结果就是“无”。这是一个例子:
XML:
<AutoShow>
<Title>List of Cars</Title>
<Cars>
<Car>
<Brand>Nissan</Brand>
<Model>Sentra</Model>
</Car>
<Car>
<Brand>Mazda</Brand>
<Model>RX-7</Model>
</Car>
</Cars>
</AutoShow>
JSON:
{
"Title": "List of Cars",
"Cars": {
"Car": [
{
"Brand": "Nissan",
"Model": "Sentra"
},
{
"Brand": "Mazda",
"Model": "RX-7"
}
]
}
}
型号:
Public Class AutoShow
Property Title As String = ""
Property Cars As List(Of Car)
Public Class Car
Property Brand As String = ""
Property Model As String = ""
End Class
End Class
控制器有:
Public Function PostValue(<FromBody()> ByVal Value As AutoShow)
'Value contains the received data
End Function
当发送 XML 时,一切都很棒 Title 有“汽车列表”和 Value.Cars 有 Car 的对象,Brand 和 Model 都有值。
发送 JSON 时 Value.Title 有“汽车列表”但 Value.Cars 是“无”
我尝试创建一个如下所示的模型:
Partial Public Class AutoShow
Public Title As String
<System.Runtime.Serialization.DataMemberAttribute()> _
Public Cars As Cars
End Class
<System.Runtime.Serialization.DataContractAttribute()> _
Partial Public Class Cars
<System.Runtime.Serialization.DataMemberAttribute()> _
Public Car() As Car
End Class
<System.Runtime.Serialization.DataContractAttribute()> _
Partial Public Class Car
<System.Runtime.Serialization.DataMemberAttribute()> _
Public Brand As String
<System.Runtime.Serialization.DataMemberAttribute()> _
Public Model As String
End Class
当我使用这个模型时,它基本上扭转了这个问题,而 JSON 有效,但 XML Value.Cars 是“无”
如果我是 Web API 2 的新手,我将不胜感激任何帮助,并且一直在搜索 google 以了解如何解决此问题。
谢谢。
【问题讨论】:
标签: asp.net-web-api2