首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Json反序列化Vb中的嵌套对象(Newtonsoft)

Json反序列化Vb中的嵌套对象(Newtonsoft)
EN

Stack Overflow用户
提问于 2019-12-20 18:51:10
回答 1查看 106关注 0票数 0

基本上,我正在尝试从API获取数据。

我的JSON是:

代码语言:javascript
复制
[
  {
    "id": 101,
    "items": [
      {
        "id": 91,
        "quantity": 141,
        "size": "12",
        "assigned": false,
        "item": {
          "pk": 27,
          "title": "test title",
          "description": "test description",
          "designer": "designer",
          "category": 4,
          "size": "12,14,16",
          "image": "media/products/indir.jpg",
          "price": 31.0,
          "resin_gr": 31.0
        }
      },
      {
        "id": 92,
        "quantity": 18,
        "size": "14",
        "assigned": false,
        "item": {
          "pk": 26,
          "title": "Bileklik 5",
          "description": "bileklik",
          "designer": "designer",
          "category": 2,
          "size": "12,14,16",
          "image": "media/products/NB00316.png",
          "price": 50.0,
          "resin_gr": 14.0
        }
      }
    ]
  }
]

我的类是:

代码语言:javascript
复制
 Public Class Orders
        Public Property id As Integer
        Public Property items As IEnumerable(Of OrderItems)
    End Class

    Public Class OrderItems
        Public Property id As Integer
        Public Property quantity As String
        Public Property size As String
        Public Property assigned As String
        Public Property item As List(Of OrderProduct)
    End Class

    Public Class OrderProduct
        Public Property pk As Integer
        Public Property title As String
        Public Property description As String
        Public Property designer As String
        Public Property category As String
        Public Property size As String
        Public Property image As String
        Public Property price As String
        Public Property resin_gr As String
    End Class

我尝试这样解析JSON:

代码语言:javascript
复制
Dim result As IEnumerable(Of Orders) = JsonConvert.DeserializeObject(Of IEnumerable(Of Orders))(JSONDATA)

我在路径'.items.item.pk',第1行,位置86上遇到错误。

我尝试过的:

我将orders.item更改为list,但没有任何更改。

我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-20 19:45:37

代码语言:javascript
复制
Public Class Orders
    Public ID As Integer
    Public Items As IEnumerable(Of OrderItems)
End Class
Public Class OrderItems
    Public ID As Integer
    Public quantity As Integer
    Public size As Integer
    Public assigned As Boolean
    Public Item As OrderProduct
End Class
Public Class OrderProduct
    Public pk As Integer
    Public title As String
    Public description As String
    Public designer As String
    Public category As Integer
    Public size As String
    Public image As String
    Public price As Double
    Public resin_gr As Double
End Class

编辑:就像一个朋友评论的那样,这是因为你试图在这里将一个对象解析为一个列表:

代码语言:javascript
复制
Public Property item As List(Of OrderProduct)

在需要的时候

代码语言:javascript
复制
Public Item As OrderProduct

不知何故,当我为指定的JSON重新创建自定义对象时,我忽略了这一点,并解决了这个问题。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59424012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档