将 vb.net 类对象转换为 vb.net 中的 JSON 字符串

Posted

技术标签:

【中文标题】将 vb.net 类对象转换为 vb.net 中的 JSON 字符串【英文标题】:Convert vb.net class object to JSON string in vb.net 【发布时间】:2015-07-23 01:41:00 【问题描述】:

我是一名 c# 开发人员,需要在 vb.net 项目中工作。我面临一个简单的问题,我需要在 vb.net 中将类对象转换为 json 字符串。问题是当我在转换后检查字符串时,我得到的输出为:

[,,]

我正在尝试将 3 个对象的值存储到其中,但我得到 3 个空对象 。 我的代码是这样的:

Imports System.Web.Script.Serialization

Partial Class test
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim serializer As New javascriptSerializer
        Dim msgObj As msg
        Dim loginList As New List(Of msg)()

        msgObj = New msg("mubashir", True)
        loginList.Add(msgObj)
        msgObj = New msg("yasir", False)
        loginList.Add(msgObj)
        msgObj = New msg("umar", True)
        loginList.Add(msgObj)
        Dim s As String = serializer.Serialize(loginList)
        Response.Write(s)

    End Sub
End Class
Public Class msg
    Dim message As String
    Dim status As Boolean
    Sub New(ByRef Messag As String, ByVal Stat As Boolean)



        Me.message = Messag
        Me.status = Stat

    End Sub
End Class

【问题讨论】:

【参考方案1】:

messagestatus需要声明为属性。

Public Class msg
      Public Property message() As String
      Public Property status() As Boolean
      Sub New(ByRef Messag As String, ByVal Stat As Boolean)
            Me.message = Messag
            Me.status = Stat    
      End Sub
End Class

【讨论】:

它的工作,thx Nguyen Kien...但我可以知道它为什么不工作的原因。我认为私有类成员没有序列化。 当然,私有成员是不序列化的,即使在c#中也是如此【参考方案2】:

看起来这是您的 msg 类的错误,因为您声明了两个字段而不是两个属性:

Public Class msg
    Public Property message() As String
    Public Property status() As Boolean
    Sub New(ByRef Messag As String, ByVal Stat As Boolean)
        Me.message = Messag
        Me.status = Stat

    End Sub
End Class

【讨论】:

以上是关于将 vb.net 类对象转换为 vb.net 中的 JSON 字符串的主要内容,如果未能解决你的问题,请参考以下文章

需要帮助将 c# 中的 opencv 转换为 vb.net

将 vb.net 字典转换为 vba 字典

将 HDD Serial # VB6 代码转换为 VB.NET 代码

在VB.NET中如何将日期类型转化为String型?

将 SQL 命令从 vb .net 转换为 C#

如何将 C# 多维列表转换为 VB.Net