2015-05-12 67 views
1

我是一名c#开发人员,并且需要在vb.net项目中工作。我面临着一个简单的问题,我需要一个类的对象转换成JSON字符串中vb.net.Problem是,当我转换我得到的输出作为后检查字符串:将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 

回答

3

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 
+0

其工作,THX阮坚...但我可以知道原因它没有工作。我认为私人班级成员没有序列化。 – killer

+1

当然,私人成员不是序列化的,即使在c# –

1

它看起来像它的过错您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