在VB.NET中将VB.NET类对象转换为JSON字符串

3

我是一名C#开发人员,需要在VB.NET项目中工作。 我遇到了一个简单的问题,我需要将一个类对象转换为JSON字符串。 问题是当我检查转换后的字符串时,输出结果如下:

[{},{},{}]

我试图将三个对象的值存储到其中一个对象中,但是我得到了三个空对象 {}。 我的代码如下:

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
2个回答

5

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

它正在工作,谢谢Nguyen Kien...但我可以知道为什么它之前没有工作吗?我认为私有类成员不能被序列化。 - killer
1
当然,在C#中,私有成员不会被序列化。 - Nguyen Kien

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接