我是一名中级程序员,正在尝试找到vb.net中JSON反序列化问题的解决方案。我正在使用API(不是我的API)进行一些产品更新,我必须在其中获取产品,反序列化产品,更改一些值并发布更新。
我已经建立了一堆vb.net类来处理JSON文档的反序列化(newtonsoft.json),并且在大多数情况下效果很好。但是,在某些产品上,我遇到了一种情况,即可以根据特定json对象的值定义对象的两种方式之一。
这是JSON的代码段:
"PriceGrids": [
{
"IsBasePrice": false,
"PriceConfigurations": [
{
"Criteria": "Imprint Method",
"Value": [
"SILKSCREEN"
]
}
]
},
{
"IsBasePrice": true,
"PriceConfigurations": [
{
"Criteria": "Size",
"Value": [
{
"Attribute": "Length",
"Value": "25",
"Unit": "cm"
},
{
"Attribute": "Width",
"Value": "7.5",
"Unit": "cm"
},
{
"Attribute": "Height",
"Value": "14.5",
"Unit": "cm"
}
]
}
]
}
因此,根据IsBasePrice值(真/假),值具有两个定义。我目前在下面的类中定义了Value。
Private _Value As New List(Of String)
Public Property Value() As List(Of String)
Get
Return _Value
End Get
Set(value As List(Of String))
_Value = value
End Set
End Property
当它不是字符串列表时,这当然会失败。我找不到任何处理此问题的示例。在vb.net中甚至可能基于提供的Json处理条件对象定义吗?