JavaScriptSerializer.Deserialize Yöntem

Tanım

Aşırı Yüklemeler

Name Description
Deserialize(String, Type)

JSON biçimli bir 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 bir 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 çıkarmak için JSON dizesi.

targetType
Type

Sonuçta elde edilen nesnenin türü.

Döndürülenler

Seri durumdan çıkarılmış nesne.

Özel durumlar

input, null'e eşittir.

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çerir.

-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 kullanılamayan ü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şkilendirilmiş tür çözümleyicisi ilgili 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 dizesini seri durumdan çıkarmanı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-

JSON dizisini, seri durumdan çıkarma hedefi olarak kullanılması 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 grafiğinin kökünü yöntemin yaptığı gibi belirli bir türe dönüştürmeyi Deserialize denemez.

Ş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

input Uzunluk değerini MaxJsonLengthaşıyor.

-veya-

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

-veya-

input beklenmeyen bir karakter dizisi içerir.

-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'e eşittir.

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 dizesini seri durumdan çıkarmanın sonucu beklenen hedef türüne atanamaz.

-veya-

input veya ö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-

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

-veya-

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

Örnekler

Aşağıdaki örnek, veri nesnelerini seri hale getirme ve seri durumdan çıkarma işleminin basit bir çizimini 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 etmek ve ardından sonucu türüne Tdönüştürmeye çalışmakla 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ş öğeler dönüştürülü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