Json序列化集合时的无限循环(VB ASP.NET)

时间:2010-09-01 02:23:40

标签: vb.net ajax json serialization infinite-loop

我正在尝试使用Web服务从数据库表返回Json以获取用户集合。我只是.NET的新手(<1周经验),我不想将UpdatePanel用于AJAX。我已经尝试使用JavaScriptSerializer以及Json.NET来序列化。这两种情况似乎都产生了一个无限循环。

我做错了什么?有一个更好的方法吗?我很感激任何建议。感谢。

    Dim myUser As New HagarDB.Users
    myUser.Read()

    'Dim jsSerializer As New System.Web.Script.Serialization.JavaScriptSerializer
    'Dim sbUsers As New System.Text.StringBuilder
    'jsSerializer.Serialize(myUser, sbUsers)

    Dim json = JsonConvert.SerializeObject(myUser, Formatting.Indented)

1 个答案:

答案 0 :(得分:1)

感谢RPM1984建议使用DataContractJsonSerializer。这是工作代码:

Public Function GetUsers() As String
    Dim myUser As New HagarDB.Users
    Dim jsonSerializer As New DataContractJsonSerializer(GetType(HagarDB.Users))
    Dim stream As New MemoryStream()

    myUser.Read()
    jsonSerializer.WriteObject(stream, myUser)

    Dim json As String = Encoding.[Default].GetString(stream.ToArray())

    stream.Close()

    Return json


End Function