JavaScriptSerializer.Deserialize Yöntem

Tanım

Aşırı Yüklemeler

Deserialize(String, Type)

JSON biçimli dizeyi belirtilen türde bir nesneye dönüştürür.

Deserialize<T>(String)

Belirtilen JSON dizesini türünde Tbir nesneye dönüştürür.

Deserialize(String, Type)

JSON biçimli dizeyi belirtilen türde bir nesneye dönüştürür.

public:
 System::Object ^ Deserialize(System::String ^ input, Type ^ targetType);
public object Deserialize (string input, Type targetType);
member this.Deserialize : string * Type -> obj
Public Function Deserialize (input As String, targetType As Type) As Object

Parametreler

input
String

Seri durumdan çıkarılacak JSON dizesi.

targetType
Type

Sonuçta elde edilen nesnenin türü.

Döndürülenler

Seri durumdan çıkarılmış nesne.

Özel durumlar

input, null değeridir.

uzunluğu input değerini MaxJsonLengthaşıyor.

-veya-

tarafından RecursionLimit tanımlanan özyineleme sınırı aşıldı.

-veya-

input beklenmeyen bir karakter dizisi içeriyor.

-veya-

input bir sözlük türüdür ve dize olmayan bir anahtar değeriyle karşılaşıldı.

-veya-

input hedef türünde bulunmayan üye tanımlarını içerir.

input özel bir türü gösteren bir "__type" özelliği içerir, ancak şu anda seri hale getiriciyle ilişkili tür çözümleyici karşılık gelen yönetilen türü bulamaz.

-veya-

input özel bir türü gösteren bir "__type" özelliği içerir, ancak karşılık gelen JSON dizesinin seri durumdan çıkarılmasının sonucu beklenen hedef türüne atanamaz.

-veya-

input örneği başlatılamayan bir türü (örneğin, soyut bir tür veya arabirim) gösteren Object bir "__type" özelliği içerir.

-veya-

Bir JSON dizisini, JSON seri durumdan çıkarma hedefi olarak kullanılmak üzere desteklenmeyen dizi benzeri yönetilen türe dönüştürme girişiminde bulunuldu.

-veya-

Hedef türe dönüştürmek input mümkün değildir.

Açıklamalar

Bu seri durumdan çıkarma yöntemi, nesne grafının kökünü yöntemin yaptığı gibi belirli bir türe dönüştürmeye Deserialize çalışmaz.

Şunlara uygulanır

Deserialize<T>(String)

Belirtilen JSON dizesini türünde Tbir nesneye dönüştürür.

public:
generic <typename T>
 T Deserialize(System::String ^ input);
public T Deserialize<T> (string input);
member this.Deserialize : string -> 'T
Public Function Deserialize(Of T) (input As String) As T

Tür Parametreleri

T

Sonuçta elde edilen nesnenin türü.

Parametreler

input
String

Seri durumdan çıkarılacak JSON dizesi.

Döndürülenler

T

Seri durumdan çıkarılmış nesne.

Özel durumlar

Uzunluk input değerini MaxJsonLengthaşıyor.

-veya-

tarafından RecursionLimit tanımlanan özyineleme sınırı aşıldı.

-veya-

input beklenmeyen bir karakter dizisi içeriyor.

-veya-

input bir sözlük türüdür ve dize olmayan bir anahtar değeriyle karşılaşıldı.

-veya-

input , türünde Tkullanılamayan üye tanımlarını içerir.

input, null değeridir.

input özel bir türü gösteren bir "__type" özelliği içerir, ancak seri hale getiriciyle ilişkili tür çözümleyici karşılık gelen yönetilen türü bulamıyor.

-veya-

input özel bir türü gösteren bir "__type" özelliği içerir, ancak karşılık gelen JSON dizesinin seri durumdan çıkarılmasının sonucu beklenen hedef türüne atanamaz.

-veya-

input örneği başlatılamayan bir türü (örneğin, soyut türler veya arabirim) gösteren Object bir "__type" özelliği içerir.

-veya-

Bir JSON dizisini, JSON seri durumdan çıkarma hedefi olarak kullanılmak üzere desteklenmeyen dizi benzeri yönetilen türe dönüştürme girişiminde bulunuldu.

-veya-

'a dönüştürmek inputTmümkün değildir.

Örnekler

Aşağıdaki örnek, veri nesnelerini seri hale getirme ve seri durumdan çıkarma hakkında basit bir çizim sağlar.

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

Aşağıdaki örnekte gösterilen adlı Personbir sınıf gerektirir.

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

Açıklamalar

Deserialize yöntemi, önce yöntemini kullanarak bir nesne grafı DeserializeObject elde etme ve ardından sonucu türüne Tdönüştürmeye çalışma ile eşdeğerdir.

Seri durumdan çıkarma sırasında seri hale getiricinin geçerli tür çözümleyicisine başvurulur ve bu da dizilerin ve sözlük türlerinin içinde iç içe yerleştirilmiş öğeleri dönüştürürken kullanılacak yönetilen türü belirler. Sonuç olarak, seri durumdan çıkarma işlemi tüm iç içe geçmiş öğeleri inputarasında yinelenir. Tür çözümleyicileri hakkında daha fazla bilgi için sınıfına JavaScriptTypeResolver bakın.

Şunlara uygulanır