【问题标题】:How to create a VB.net class from this JSON?如何从这个 JSON 创建一个 VB.net 类?
【发布时间】:2012-05-09 21:49:56
【问题描述】:

我正在尝试从下面的 JSON 示例在 vb.net 中创建一个类。

我对 JSON 还很陌生,只是在找出正确的方法时遇到了麻烦。我查看了许多如何做到这一点的示例,但它们的格式比我在下面提供的要简单得多。

LEVEL0({
  "LEVEL1": [
    {
      "LEVEL2": [
        {
          "City": "Billings",
          "State": "MO",
          "Country": "US",
          "Id": "1122334455",
          "Percent": "39.10"
          }
      ],
      "City": "Billings",
      "Country": "US",
      "NumFound": "1",
      "NumReturned": "1",
      "State": "MO",
      "Status": "Success"
    }
  ],
  "Status": "1"
});

我原以为这会很容易,但导致我出现问题的是 LEVEL2 是一个列表。它可以返回多个城市。因此,它可以在 [] 中返回类似的内容。

{"City": "Billings","State": "MO","Country": "US","Id": "1122334455","Percent": "39.10"},
{"City": "Fairmount","State": "MN","Country": "US","Id": "1177775","Percent": "64.10",}

因此,无论哪种方式,该部分都需要是一个列表,但列表下方的部分也需要是该类的一部分。您在哪里看到 numFound。

我猜这措辞不好,但我正在努力寻找一个很好的例子来说明如何做到这一点。对此的任何指导或建议将不胜感激。我需要正确格式化该类,以便当我反序列化到该类时它可以正常工作。

【问题讨论】:

    标签: vb.net json json.net


    【解决方案1】:

    如果您正在使用某种 Web 服务,那么如果您正在使用具有所有这些属性的对象,它应该会自动为您绑定。比如:

    Public Class WrapperClass
        Dim Status As Integer
        Dim LEVEL1 As New List(Of MiddleClass)
    End Class
    
    Public Class MiddleClass
        Dim LEVEL2 As New List(Of InnerClass)
        Dim City As String
        Dim Country As String
        Dim NumFound As Integer
        Dim NumReturned As Integer
        Dim State As String
        Dim Status As String
    
        Public Sub MiddleClass()
        'init code
        End Sub
    End Class
    
    Public Class InnerClass
        Dim City As String
        Dim Country As String
        Dim State As String
        Dim Id As Integer
        Dim Percent As Decimal
    End Class
    

    然后在您的网络服务中,让它接受WrapperClass 类型的参数

    【讨论】:

    • 即使 OP 没有使用 Web 服务,这也是如何为该 JSON 构建类的一个很好的模型!
    • 感谢您的帮助。我的比这复杂得多,我应该给出一个比我做的更好的例子,但这让我正确地思考了这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多