当前位置: 首页 > 面试题库 >

VB.net中json.net的简单工作示例

路欣荣
2023-03-14
问题内容

我从提供者那里得到了以下简化的JSON字符串,自从我使用Visual Studio和vb.Net以来已经有很长时间了,所以我很生锈!

{
"Venue": {
    "ID": 3145,
    "Name": "Big Venue, Clapton",
    "NameWithTown": "Big Venue, Clapton, London",
    "NameWithDestination": "Big Venue, Clapton, London",
    "ListingType": "A",
    "Address": {
        "Address1": "Clapton Raod",
        "Address2": "",
        "Town": "Clapton",
        "County": "Greater London",
        "Postcode": "PO1 1ST",
        "Country": "United Kingdom",
        "Region": "Europe"
    },
    "ResponseStatus": {
        "ErrorCode": "200",
        "Message": "OK"
    }
}
}

我想使用JSON.Net将其转换为我可以使用的东西,我已经阅读了示例等,并且JSON.net看起来像答案,但我无处可去。

我的.Net代码(Me.TextBox1.Text包含上面显示的JSON)

Imports Newtonsoft.Json

Public Class Form1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim obj As JSON_result
    obj = JsonConvert.DeserializeObject(Of JSON_result)(Me.TextBox1.Text)

    MsgBox(obj.ID)
End Sub
End Class

Public Class JSON_result
    Public ID As Integer
    Public Name As String
    Public NameWithTown As String
    Public NameWithDestination As String
    Public ListingType As String
 End Class

有人可以解释一下为什么obj.ID总是以0结尾,为什么我的类的其他属性都没有填充,为什么我需要做些什么来解决这个问题,所以没有错误报告。


问题答案:

您的课程JSON_result与您的JSON字符串不匹配。请注意,该对象JSON_result将如何表示,并包装在另一个名为中的属性中"Venue"

因此,要么为此创建一个类,例如:

Public Class Container
    Public Venue As JSON_result
End Class

Public Class JSON_result
    Public ID As Integer
    Public Name As String
    Public NameWithTown As String
    Public NameWithDestination As String
    Public ListingType As String
End Class

Dim obj = JsonConvert.DeserializeObject(Of Container)(...your_json...)

或将JSON字符串更改为

{
    "ID": 3145,
    "Name": "Big Venue, Clapton",
    "NameWithTown": "Big Venue, Clapton, London",
    "NameWithDestination": "Big Venue, Clapton, London",
    "ListingType": "A",
    "Address": {
        "Address1": "Clapton Raod",
        "Address2": "",
        "Town": "Clapton",
        "County": "Greater London",
        "Postcode": "PO1 1ST",
        "Country": "United Kingdom",
        "Region": "Europe"
    },
    "ResponseStatus": {
        "ErrorCode": "200",
        "Message": "OK"
    }
}

或使用例如a ContractResolver解析JSON字符串。



 类似资料:
  • log4j-core-2.0-beta8.jar 并使用默认配置完成了尽可能简单的示例: 但由于某种原因,我得到的只是‘测试结束’。我从来没有得到过Hello World,无论在哪里我都能找到。我找错地方了吗?我的理解是,在默认配置下,它应该被打印到控制台,并带有“test over”。我已经将日志级别更改为info,仍然相同。我试着把记录器功能放到一个类中,仍然是一样的。我正在log4j文档页面

  • 主要内容:VB.Net创建一个Excel文件的应用程序VB.Net支持Microsoft Excel 2010的COM对象模型和应用程序之间的互操作性。 要应用程序中使用这种互操作性,需要在Windows窗体应用程序中导入名称空间。 VB.Net创建一个Excel文件的应用程序 让我们开始创建一个窗体窗体应用程序按照以下步骤在Microsoft Visual Studio中:文件 -> 新建项目 -> Windows窗体应用程序。 最后,选择确定,M

  • 本文向大家介绍简单的手工hibernate程序示例,包括了简单的手工hibernate程序示例的使用技巧和注意事项,需要的朋友参考一下 本文讲述了简单的手工hibernate程序示例。分享给大家供大家参考。具体如下: 今天学习了下hibernate,写了个小的手工程序,总结下, 首先创建数据库表: eclipse下,新建工程。 新建数据库表的映射,这里使用手工方式完成: IncrementTest

  • 我用泽西岛写了一个非常简单的例子。我从泽西岛网站下载了最新的jar文件到WEB-INF的lib文件夹中。我的课程和在下面。 当我提供URL我得到。 然而,当我使用Maven时,它是有效的。我用的是Eclipse开普勒,Glassfish 4服务器,Java 7。 非Maven版本我做错了什么? 谢谢。 类: Web.xml:

  • 我们正在评估一个大数据项目的AWS胶水,并使用一些ETL。我们添加了一个爬虫程序,它可以正确地从S3中提取CSV文件。最初,我们只想将CSV转换为JSON,并将文件放在另一个S3位置(相同的bucket,不同的路径)。 我们使用了AWS提供的脚本(这里没有自定义脚本)。并且只是映射了所有列。 目标文件夹为空(作业刚刚创建),但作业失败,出现“文件已存在”:此处为快照。我们假装丢弃的S3位置在开始作

  • WriterDemo示例使用VB.NET与UNO API交互。(这些文件还包括在中的SDK下载中。) 为了构建和运行,我根据https://api.libreoffice.org/docs/install.html设置命令行环境,然后使用执行Makefile。但它在这条线上崩溃了: