使用条件定义将json反序列化为vb.net类

时间:2019-02-24 23:31:36

标签: json vb.net

我是一名中级程序员,正在尝试找到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处理条件对象定义吗?

0 个答案:

没有答案