JavaScriptSerializer.Serialize Metódus

Definíció

Egy objektumot JSON-sztringgé alakít át.

Túlterhelések

Name Description
Serialize(Object)

Egy objektumot JSON-sztringgé alakít át.

Serialize(Object, StringBuilder)

Szerializál egy objektumot, és az eredményül kapott JSON-sztringet a megadott StringBuilder objektumra írja.

Serialize(Object)

Egy objektumot JSON-sztringgé alakít át.

public:
 System::String ^ Serialize(System::Object ^ obj);
public string Serialize(object obj);
member this.Serialize : obj -> string
Public Function Serialize (obj As Object) As String

Paraméterek

obj
Object

A szerializálandó objektum.

Válaszok

A szerializált JSON-sztring.

Kivételek

Az eredményül kapott JSON-sztring meghaladja a következő értékét MaxJsonLength: .

-vagy-

obj körkörös hivatkozást tartalmaz. Körkörös hivatkozás akkor fordul elő, ha egy gyermekobjektum egy szülőobjektumra mutató hivatkozást, a szülőobjektum pedig a gyermekobjektumra mutató hivatkozást.

Túllépte a rekurziós korlátot RecursionLimit .

Példák

Az alábbi példa egy egyszerű illusztrációt nyújt az adatobjektumok szerializálására és deszerializálására.

using System;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.Script.Serialization;

namespace ExampleApplication
{
    public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var RegisteredUsers = new List<Person>();
            RegisteredUsers.Add(new Person() { PersonID = 1, Name = "Bryon Hetrick", Registered = true });
            RegisteredUsers.Add(new Person() { PersonID = 2, Name = "Nicole Wilcox", Registered = true });
            RegisteredUsers.Add(new Person() { PersonID = 3, Name = "Adrian Martinson", Registered = false });
            RegisteredUsers.Add(new Person() { PersonID = 4, Name = "Nora Osborn", Registered = false });

            var serializer = new JavaScriptSerializer();
            var serializedResult = serializer.Serialize(RegisteredUsers);
            // Produces string value of:
            // [
            //     {"PersonID":1,"Name":"Bryon Hetrick","Registered":true},
            //     {"PersonID":2,"Name":"Nicole Wilcox","Registered":true},
            //     {"PersonID":3,"Name":"Adrian Martinson","Registered":false},
            //     {"PersonID":4,"Name":"Nora Osborn","Registered":false}
            // ]

            var deserializedResult = serializer.Deserialize<List<Person>>(serializedResult);
            // Produces List with 4 Person objects
        }
    }
}
Imports System.Web.Script.Serialization

Public Class _Default
    Inherits Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
        Dim RegisteredUsers As New List(Of Person)()
        RegisteredUsers.Add(New Person With {.PersonID = 1, .Name = "Bryon Hetrick", .Registered = True})
        RegisteredUsers.Add(New Person With {.PersonID = 2, .Name = "Nicole Wilcox", .Registered = True})
        RegisteredUsers.Add(New Person With {.PersonID = 3, .Name = "Adrian Martinson", .Registered = False})
        RegisteredUsers.Add(New Person With {.PersonID = 4, .Name = "Nora Osborn", .Registered = False})

        Dim serializer As New JavaScriptSerializer()
        Dim serializedResult = serializer.Serialize(RegisteredUsers)
        ' Produces string value of:
        ' [
        '     {"PersonID":1,"Name":"Bryon Hetrick","Registered":true},
        '     {"PersonID":2,"Name":"Nicole Wilcox","Registered":true},
        '     {"PersonID":3,"Name":"Adrian Martinson","Registered":false},
        '     {"PersonID":4,"Name":"Nora Osborn","Registered":false}
        ' ]

        Dim deserializedResult = serializer.Deserialize(Of List(Of Person))(serializedResult)
        ' Produces List with 4 Person objects
    End Sub
End Class

Ehhez egy nevesített Personosztályra van szükség, amely az alábbi példában látható.

namespace ExampleApplication
{
    public class Person
    {
        public int PersonID { get; set; }
        public string Name { get; set; }
        public bool Registered { get; set; }
    }
}
Public Class Person
    Public Property PersonID As Integer
    Public Property Name As String
    Public Property Registered As Boolean
End Class

Megjegyzések

Ha a JavaScriptSerializer példány szerializál egy olyan típust, amelyhez egyéni konverter van regisztrálva, a szerializáló meghívja a Serialize metódust a név-érték párok szótárának beszerzésére, amelyeket JSON-sztringgé konvertálunk.

A Serialize metódus kivételeket is okozhat, ha az objektumdiagram túl összetett, vagy ha a regisztrált példányok konverter-rekurziót okoztak JavaScriptConverter .

A következőre érvényes:

Serialize(Object, StringBuilder)

Szerializál egy objektumot, és az eredményül kapott JSON-sztringet a megadott StringBuilder objektumra írja.

public:
 void Serialize(System::Object ^ obj, System::Text::StringBuilder ^ output);
public void Serialize(object obj, System.Text.StringBuilder output);
member this.Serialize : obj * System.Text.StringBuilder -> unit
Public Sub Serialize (obj As Object, output As StringBuilder)

Paraméterek

obj
Object

A szerializálandó objektum.

output
StringBuilder

A StringBuilder JSON-sztring írásához használt objektum.

Kivételek

Az eredményül kapott JSON-sztring meghaladja a következő értékét MaxJsonLength: .

-vagy-

obj körkörös hivatkozást tartalmaz. Körkörös hivatkozás akkor fordul elő, ha egy gyermekobjektum egy szülőobjektumra mutató hivatkozást, a szülőobjektum pedig a gyermekobjektumra mutató hivatkozást.

Túllépte a rekurziós korlátot RecursionLimit .

output az null.

Megjegyzések

Ha a JavaScriptSerializer példány szerializál egy olyan típust, amelyhez egyéni konverter van regisztrálva, a szerializáló meghívja a Serialize metódust a név-érték párok szótárának beszerzésére, amelyeket JSON-sztringgé konvertálunk.

A Serialize metódus kivételeket is okozhat, ha az objektumdiagram túl összetett, vagy ha a regisztrált példányok konverter-rekurziót okoztak JavaScriptConverter .

A következőre érvényes: