Бесконечный цикл при сериализации Json коллекцией (VB ASP.NET) - PullRequest
0 голосов
/ 01 сентября 2010

Я пытаюсь использовать веб-сервис для возврата Json для коллекции пользователей из таблицы базы данных. Я только новичок в .NET (<1 неделя опыта), и я не хочу использовать UpdatePanel для AJAX. Я пытался использовать JavaScriptSerializer, а также Json.NET для сериализации. В обоих случаях создается бесконечный цикл. </p>

Что я делаю не так? Есть лучший способ сделать это? Я ценю любые предложения. Спасибо.

    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 Ответ

1 голос
/ 01 сентября 2010

Спасибо 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
...