JavaScriptSerializer JavaScriptSerializer JavaScriptSerializer JavaScriptSerializer Class

Определение

Json.NET следует использовать для сериализации и десериализации.Json.NET should be used for serialization and deserialization. Предоставляет возможности сериализации и десериализации для приложений с поддержкой AJAX.Provides serialization and deserialization functionality for AJAX-enabled applications.

public ref class JavaScriptSerializer
public class JavaScriptSerializer
type JavaScriptSerializer = class
Public Class JavaScriptSerializer
Наследование
JavaScriptSerializerJavaScriptSerializerJavaScriptSerializerJavaScriptSerializer

Примеры

Первый пример иллюстрирует это того, как сериализовывать и десериализовывать объекты данных.The first example provides a simple illustration of how to serialize and deserialize data objects. Требуется класс с именем пользователя, которая представлена ниже.It requires a class named Person which is shown below.

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
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

В следующем примере показано более сложными и полный проект, использующий JavaScriptSerializer класс сохранять и восстанавливать состояние объекта с помощью сериализации JSON.The next example shows a more complicated and complete project that uses the JavaScriptSerializer class to save and restore the state of an object by using JSON serialization. Этот код использует пользовательский преобразователь, который предоставляется в целях JavaScriptConverter класса.This code uses a custom converter that is provided for the JavaScriptConverter class.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Script.Serialization" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    JavaScriptSerializer serializer;
    protected void Page_Load(object sender, EventArgs e)
    {
        //<Snippet1>
        serializer = new JavaScriptSerializer();
        
        // Register the custom converter.
        serializer.RegisterConverters(new JavaScriptConverter[] { 
            new System.Web.Script.Serialization.CS.ListItemCollectionConverter() });
        //</Snippet1>
        this.SetFocus(TextBox1);
    }
    
    protected void saveButton_Click(object sender, EventArgs e)
    {
        // Save the current state of the ListBox control.
        SavedState.Text = serializer.Serialize(ListBox1.Items);
        recoverButton.Enabled = true;
        Message.Text = "State saved";
    }

    protected void recoverButton_Click(object sender, EventArgs e)
    {        
        //Recover the saved items of the ListBox control.
        ListItemCollection recoveredList = serializer.Deserialize<ListItemCollection>(SavedState.Text);
        ListItem[] newListItemArray = new ListItem[recoveredList.Count];
        recoveredList.CopyTo(newListItemArray, 0);
        ListBox1.Items.Clear();
        ListBox1.Items.AddRange(newListItemArray);
        Message.Text = "Last saved state recovered.";
    }

    protected void clearButton_Click(object sender, EventArgs e)
    {
        // Remove all items from the ListBox control.
        ListBox1.Items.Clear();
        Message.Text = "All items removed";
    }

    protected void ContactsGrid_SelectedIndexChanged(object sender, EventArgs e)
    {
        // Get the currently selected row using the SelectedRow property.
        GridViewRow row = ContactsGrid.SelectedRow;

        // Get the ID of item selected.
        string itemId = ContactsGrid.DataKeys[row.RowIndex].Value.ToString();                
        ListItem newItem = new ListItem(row.Cells[4].Text, itemId);
        
        // Check if the item already exists in the ListBox control.
        if (!ListBox1.Items.Contains(newItem))
        {
            // Add the item to the ListBox control.
            ListBox1.Items.Add(newItem);
            Message.Text = "Item added";
        }
        else
            Message.Text = "Item already exists";
    }

    protected void ContactsGrid_PageIndexChanged(object sender, EventArgs e)
    {
        //Reset the selected index.
        ContactsGrid.SelectedIndex = -1;
    }

    protected void searchButton_Click(object sender, EventArgs e)
    {
        //Reset indexes.
        ContactsGrid.SelectedIndex = -1;
        ContactsGrid.PageIndex = 0;
        
        //Set focus on the TextBox control.
        ScriptManager1.SetFocus(TextBox1);
    }

    protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
    {
        // Show/hide the saved state string.        
        SavedState.Visible = CheckBox1.Checked;
        StateLabel.Visible = CheckBox1.Checked;
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Save/Recover state</title>
    <style type="text/css">
        body {  font: 11pt Trebuchet MS;
                font-color: #000000;
                padding-top: 72px;
                text-align: center }

        .text { font: 8pt Trebuchet MS }
    </style>
</head>
<body>    
    <form id="form1" runat="server" defaultbutton="searchButton" defaultfocus="TextBox1">
        <h3>
            <span style="text-decoration: underline">
                                    Contacts Selection</span><br />
        </h3>
        <asp:ScriptManager runat="server" ID="ScriptManager1" />
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                Type contact's first name:
                <asp:TextBox ID="TextBox1" runat="server" />
                <asp:Button ID="searchButton" runat="server" Text="Search" OnClick="searchButton_Click" />&nbsp;
                <br />
                <br />
                <table border="0" width="100%">
                    <tr>
                        <td style="width:50%" valign="top" align="center">
                            <b>Search results:</b><br />
                            <asp:GridView ID="ContactsGrid" runat="server" AutoGenerateColumns="False"
                                CellPadding="4" DataKeyNames="ContactID" DataSourceID="SqlDataSource1"
                                OnSelectedIndexChanged="ContactsGrid_SelectedIndexChanged" ForeColor="#333333" GridLines="None" AllowPaging="True" PageSize="7" OnPageIndexChanged="ContactsGrid_PageIndexChanged">
                                <Columns>
                                    <asp:CommandField ShowSelectButton="True" ButtonType="Button" />
                                    <asp:BoundField DataField="ContactID" HeaderText="ContactID" SortExpression="ContactID" Visible="False" />
                                    <asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
                                    <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />
                                    <asp:BoundField DataField="EmailAddress" HeaderText="EmailAddress" SortExpression="EmailAddress" />
                                </Columns>
                                <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                                <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                                <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                <EditRowStyle BackColor="#999999" />
                                <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                                <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                                <EmptyDataTemplate>No data found.</EmptyDataTemplate>
                            </asp:GridView>
                            <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:AdventureWorksConnectionString %>"
                                SelectCommand="SELECT ContactID, FirstName, LastName, EmailAddress FROM Person.Contact WHERE (UPPER(FirstName) = UPPER(@FIRSTNAME))" >
                                <SelectParameters>
                                    <asp:ControlParameter Name="FIRSTNAME" ControlId="TextBox1" Type="String" />
                                </SelectParameters>
                            </asp:SqlDataSource>
                        </td>
                        <td valign="top">
                            <b>Contacts list:</b><br />
                        <asp:ListBox ID="ListBox1" runat="server" Height="200px" Width="214px" /><br />
                        <asp:Button ID="saveButton" runat="server" Text="Save state" OnClick="saveButton_Click" ToolTip="Save the current state of the list" />
                        <asp:Button ID="recoverButton" runat="server" Text="Recover saved state" OnClick="recoverButton_Click" Enabled="false" ToolTip="Recover the last saved state" />
                        <asp:Button ID="clearButton" runat="server" Text="Clear" OnClick="clearButton_Click" ToolTip="Remove all items from the list" /><br />
                            <br />
                            <asp:CheckBox ID="CheckBox1" runat="server" Checked="True" OnCheckedChanged="CheckBox1_CheckedChanged"
                                Text="Show saved state" AutoPostBack="True" /></td>
                    </tr>
                    <tr>
                        <td colspan="2">
                            <br />
                            <br />
                            &nbsp;&nbsp;
                            <hr />
                            Message: <asp:Label ID="Message" runat="server" ForeColor="SteelBlue" />&nbsp;&nbsp;<br />
                            <asp:Label ID="StateLabel" runat="server" Text="State:"></asp:Label>
                            <asp:Label ID="SavedState" runat="server"/><br />                        
                        </td>
                    </tr>
                </table>
            </ContentTemplate>
        </asp:UpdatePanel>
        <asp:UpdateProgress ID="UpdateProgress1" runat="server">
            <ProgressTemplate>
                <asp:Image ID="Image1" runat="server" ImageUrl="..\images\spinner.gif" />&nbsp;Processing...
            </ProgressTemplate>
        </asp:UpdateProgress>
    </form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Script.Serialization" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    
    Dim serializer As JavaScriptSerializer

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        '<Snippet1>
        serializer = New JavaScriptSerializer()
    
        ' Register the custom converter.
        serializer.RegisterConverters(New JavaScriptConverter() _
            {New System.Web.Script.Serialization.VB.ListItemCollectionConverter()})
        '</Snippet1>
    End Sub

    Protected Sub saveButton_Click(ByVal sender As Object, ByVal e As EventArgs)
        ' Save the current state of the ListBox control.
        SavedState.Text = serializer.Serialize(ListBox1.Items)
        recoverButton.Enabled = True
        Message.Text = "State saved"
    End Sub

    Protected Sub recoverButton_Click(ByVal sender As Object, ByVal e As EventArgs)
        ' Recover the saved items of the ListBox control.        
        Dim recoveredList As ListItemCollection = _
            serializer.Deserialize(Of ListItemCollection)(SavedState.Text)
        Dim newListItemArray(recoveredList.Count - 1) As ListItem
        recoveredList.CopyTo(newListItemArray, 0)
        ListBox1.Items.Clear()
        ListBox1.Items.AddRange(newListItemArray)
        Message.Text = "Last saved state recovered."
    End Sub

    Protected Sub clearButton_Click(ByVal sender As Object, ByVal e As EventArgs)
        ' Remove all items from the ListBox control.
        ListBox1.Items.Clear()
        Message.Text = "All items removed"
    End Sub

    Protected Sub ContactsGrid_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
        ' Get the currently selected row using the SelectedRow property.
        Dim row As GridViewRow = ContactsGrid.SelectedRow
    
        ' Get the ID of the item selected.
        Dim itemId As String = ContactsGrid.DataKeys(row.RowIndex).Value.ToString()
        Dim newItem As ListItem = New ListItem(row.Cells(4).Text, itemId)

        ' Check if the item already exists in the ListBox control.
        If Not ListBox1.Items.Contains(newItem) Then
            ' Add the item to the ListBox control.
            ListBox1.Items.Add(newItem)
            Message.Text = "Item added"
        Else
            Message.Text = "Item already exists"
        End If
        
    End Sub
 
    Private Function SearchItem(ByVal itemId As String) As Boolean
        Dim i As Integer
        For i = 0 To ListBox1.Items.Count - 1
            If ListBox1.Items(i).Value = itemId Then
                Return True
            End If
        Next i
        Return False

    End Function

    Protected Sub ContactsGrid_PageIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
        ContactsGrid.SelectedIndex = -1
    End Sub

    Protected Sub searchButton_Click(ByVal sender As Object, ByVal e As EventArgs)
        ContactsGrid.SelectedIndex = -1
        ContactsGrid.PageIndex = 0
        ScriptManager1.SetFocus(TextBox1)
    End Sub

    Protected Sub CheckBox1_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs)
        SavedState.Visible = CheckBox1.Checked
        StateLabel.Visible = CheckBox1.Checked
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Save/Recover state</title>
    <style type="text/css">
        body {  font: 11pt Trebuchet MS;
                font-color: #000000;
                padding-top: 72px;
                text-align: center }

        .text { font: 8pt Trebuchet MS }
    </style>
</head>
<body>    
    <form id="form1" runat="server" defaultbutton="searchButton" defaultfocus="TextBox1">
        <h3>
            <span style="text-decoration: underline">
                                    Contacts Selection</span><br />
        </h3>
        <asp:ScriptManager runat="server" ID="ScriptManager1" />
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                Type contact's first name:
                <asp:TextBox ID="TextBox1" runat="server" />
                <asp:Button ID="searchButton" runat="server" Text="Search" OnClick="searchButton_Click" />&nbsp;
                <br />
                <br />
                <table border="0" width="100%">
                    <tr>
                        <td style="width:50%" valign="top" align="center">
                            <b>Search results:</b><br />
                            <asp:GridView ID="ContactsGrid" runat="server" AutoGenerateColumns="False"
                                CellPadding="4" DataKeyNames="ContactID" DataSourceID="SqlDataSource1"
                                OnSelectedIndexChanged="ContactsGrid_SelectedIndexChanged" ForeColor="#333333" GridLines="None" AllowPaging="True" PageSize="7" OnPageIndexChanged="ContactsGrid_PageIndexChanged">
                                <Columns>
                                    <asp:CommandField ShowSelectButton="True" ButtonType="Button" />
                                    <asp:BoundField DataField="ContactID" HeaderText="ContactID" SortExpression="ContactID" Visible="False" />
                                    <asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
                                    <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />
                                    <asp:BoundField DataField="EmailAddress" HeaderText="EmailAddress" SortExpression="EmailAddress" />
                                </Columns>
                                <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                                <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                                <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                <EditRowStyle BackColor="#999999" />
                                <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                                <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                                <EmptyDataTemplate>No data found.</EmptyDataTemplate>
                            </asp:GridView>
                            <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:AdventureWorksConnectionString %>"
                                SelectCommand="SELECT ContactID, FirstName, LastName, EmailAddress FROM Person.Contact WHERE (UPPER(FirstName) = UPPER(@FIRSTNAME))" >
                                <SelectParameters>
                                    <asp:ControlParameter Name="FIRSTNAME" ControlId="TextBox1" Type="String" />
                                </SelectParameters>
                            </asp:SqlDataSource>
                        </td>
                        <td valign="top">
                            <b>Contacts list:</b><br />
                        <asp:ListBox ID="ListBox1" runat="server" Height="200px" Width="214px" /><br />
                        <asp:Button ID="saveButton" runat="server" Text="Save state" OnClick="saveButton_Click" ToolTip="Save the current state of the list" />
                        <asp:Button ID="recoverButton" runat="server" Text="Recover saved state" OnClick="recoverButton_Click" Enabled="false" ToolTip="Recover the last saved state" />
                        <asp:Button ID="clearButton" runat="server" Text="Clear" OnClick="clearButton_Click" ToolTip="Remove all items from the list" /><br />
                            <br />
                            <asp:CheckBox ID="CheckBox1" runat="server" Checked="True" OnCheckedChanged="CheckBox1_CheckedChanged"
                                Text="Show saved state" AutoPostBack="True" /></td>
                    </tr>
                    <tr>
                        <td colspan="2">
                            <br />
                            <br />
                            &nbsp;&nbsp;
                            <hr />
                            Message: <asp:Label ID="Message" runat="server" ForeColor="SteelBlue" />&nbsp;&nbsp;<br />
                            <asp:Label ID="StateLabel" runat="server" Text="State:"></asp:Label>
                            <asp:Label ID="SavedState" runat="server"/><br />                        
                        </td>
                    </tr>
                </table>
            </ContentTemplate>
        </asp:UpdatePanel>
        <asp:UpdateProgress ID="UpdateProgress1" runat="server">
            <ProgressTemplate>
                <asp:Image ID="Image1" runat="server" ImageUrl="..\images\spinner.gif" />&nbsp;Processing...
            </ProgressTemplate>
        </asp:UpdateProgress>
    </form>
</body>
</html>

Комментарии

JavaScriptSerializer Класс используется внутренне слой асинхронного взаимодействия для сериализации и десериализации данных, который передается между браузером и веб-сервера.The JavaScriptSerializer class is used internally by the asynchronous communication layer to serialize and deserialize the data that is passed between the browser and the Web server. Не удается получить доступ к этот экземпляр сериализатора.You cannot access that instance of the serializer. Тем не менее этот класс предоставляет общедоступные API-Интерфейсы.However, this class exposes a public API. Таким образом можно использовать класс, если вы хотите работать с использованием нотации объектов JavaScript (JSON) в управляемом коде.Therefore, you can use the class when you want to work with JavaScript Object Notation (JSON) in managed code.

Чтобы сериализовать объект, используйте Serialize метод.To serialize an object, use the Serialize method. Для десериализации строки JSON, используйте Deserialize или DeserializeObject методы.To deserialize a JSON string, use the Deserialize or DeserializeObject methods. Для сериализации и десериализации типов, которые изначально не поддерживаются службой JavaScriptSerializer, реализовать пользовательские преобразователи с помощью JavaScriptConverter класса.To serialize and deserialize types that are not natively supported by JavaScriptSerializer, implement custom converters by using the JavaScriptConverter class. Затем зарегистрируйте преобразователи с помощью RegisterConverters метод.Then register the converters by using the RegisterConverters method.

Сопоставление управляемых типов и JSONMapping Between Managed Types and JSON

Следующая таблица показывает сопоставление управляемых типов и JSON для процесса сериализации.The following table shows the mapping between managed types and JSON for the serialization process. Эти управляемые типы встроена в JavaScriptSerializer.These managed types are natively supported by JavaScriptSerializer. При выполнении десериализации строки JSON в управляемый тип, применяется такое же сопоставление.When you are deserializing from a JSON string to a managed type, the same mapping applies. Однако десериализация может быть асимметричной; не все сериализуемые типы управляемых может быть десериализован из JSON.However, deserialization can be asymmetric; not all serializable managed types can be deserialized from JSON.

Примечание

Многомерный массив сериализуется как одномерный массив, и его следует использовать как плоский.A multidimensional array is serialized as a one-dimensional array, and you should use it as a flat array.

Управляемый типManaged type Эквивалент в формате JSONJSON equivalent
String (Кодировка UTF-8 только).String (UTF-8 encoding only). StringString
Char StringString
Одиночное null-значение (например, \0)Single null char (such as, \0 ) NullNull
Boolean Логическое.Boolean. Представленные в формате JSON как true или falseRepresented in JSON as true or false
null (null ссылки на объекты и Nullable типы значений).null (null object references and Nullable value types). Строковое значение nullA string value of null
DBNull Строковое значение nullA string value of null
Типы-примитивы числовое (или совместимый числовые): Byte, SByte, Int16, Int32, Int64, UInt16, UInt32, UInt64, Double, и Single.Primitive numeric (or numeric-compatible) types: Byte, SByte, Int16, Int32, Int64, UInt16, UInt32, UInt64, Double, and Single. Используется независимое от языка и региональных параметров строковое представление.The culture-invariant string representation is used. ЧислоNumber
DateTime Объект Date, представленные в формате JSON, как "\/Date (число тактов)\/».Date object, represented in JSON as "\/Date(number of ticks)\/". Количество тактов — положительное или отрицательное значение long, указывающее количество тактов (в миллисекундах), истекших с полуночи 01 января 1970 года в формате UTC.The number of ticks is a positive or negative long value that indicates the number of ticks (milliseconds) that have elapsed since midnight 01 January, 1970 UTC.

Максимальный поддерживаемый даты, значение — MaxValue (12/31/9999 11:59:59 PM), а значение минимальная поддерживаемая Дата — MinValue (1/1/0001 12:00:00 AM).The maximum supported date value is MaxValue (12/31/9999 11:59:59 PM) and the minimum supported date value is MinValue (1/1/0001 12:00:00 AM).
Перечисления типа integerEnumerations of integer type Целое число, эквивалентное значение перечисленияInteger equivalent of the enumeration value
Типы, реализующие IEnumerable или System.Collections.Generic.IEnumerable<T> , также не являются реализациями IDictionary или System.Collections.Generic.IDictionary<TKey,TValue>.Types that implement IEnumerable or System.Collections.Generic.IEnumerable<T> that are not also implementations of IDictionary or System.Collections.Generic.IDictionary<TKey,TValue>. Сюда входят типы, такие как Array, ArrayList, и List<T>.This includes types such as Array, ArrayList, and List<T>. Массив, который использует синтаксис массива JSONArray that uses JSON array syntax
Типы, реализующие IDictionary или System.Collections.Generic.IDictionary<TKey,TValue>.Types that implement IDictionary or System.Collections.Generic.IDictionary<TKey,TValue>. Сюда входят типы, такие как Dictionary<TKey,TValue> и Hashtable.This includes types such as Dictionary<TKey,TValue> and Hashtable. Объект JavaScript, который использует синтаксис словаря JSONJavaScript object that uses JSON dictionary syntax
Пользовательские конкретных (неабстрактных) типов, имеющих открытые свойства экземпляра имеют методами доступа get или открытые экземпляры полей.Custom concrete (non-abstract) types that have public instance properties that have get accessors or public instance fields.

Обратите внимание, что открытые свойства только для записи, открытого свойства или атрибуты открытое поле, отмеченный ScriptIgnoreAttribute, и открытый индексированных свойств в этих типах учитываются.Note that public write-only properties, public property or public field attributes marked with ScriptIgnoreAttribute, and public indexed properties in these types are ignored.
Объект JavaScript, который использует синтаксис словаря JSON.JavaScript object that uses JSON dictionary syntax. Особое свойство метаданных с именем «__type» включено для обеспечения правильности десериализации.A special metadata property named "__type" is included to ensure correct deserialization. Убедитесь, что открытые свойства экземпляра имеют get и set для обеспечения правильности десериализации.Make sure that public instance properties have get and set accessors to ensure correct deserialization.
Guid Строковое представление идентификатора GUIDString representation of a GUID
Uri Строковое представление возвращаемое значение GetComponentsString representation of the return value of GetComponents

Конструкторы

JavaScriptSerializer() JavaScriptSerializer() JavaScriptSerializer() JavaScriptSerializer()

Инициализирует новый экземпляр класса JavaScriptSerializer, для которого не предусмотрен распознаватель типов.Initializes a new instance of the JavaScriptSerializer class that has no type resolver.

JavaScriptSerializer(JavaScriptTypeResolver) JavaScriptSerializer(JavaScriptTypeResolver) JavaScriptSerializer(JavaScriptTypeResolver) JavaScriptSerializer(JavaScriptTypeResolver)

Инициализирует новый экземпляр класса JavaScriptSerializer, для которого предусмотрен пользовательский распознаватель типов.Initializes a new instance of the JavaScriptSerializer class that has a custom type resolver.

Свойства

MaxJsonLength MaxJsonLength MaxJsonLength MaxJsonLength

Возвращает или задает максимальную длину строки формата JSON, которую может принять класс JavaScriptSerializer.Gets or sets the maximum length of JSON strings that are accepted by the JavaScriptSerializer class.

RecursionLimit RecursionLimit RecursionLimit RecursionLimit

Возвращает или задает ограничение на количество обрабатываемых уровней объекта.Gets or sets the limit for constraining the number of object levels to process.

Методы

ConvertToType(Object, Type) ConvertToType(Object, Type) ConvertToType(Object, Type) ConvertToType(Object, Type)

Преобразует указанный объект в заданный тип.Converts the specified object to the specified type.

ConvertToType<T>(Object) ConvertToType<T>(Object) ConvertToType<T>(Object) ConvertToType<T>(Object)

Приводит заданный объект к указанному типу.Converts the given object to the specified type.

Deserialize(String, Type) Deserialize(String, Type) Deserialize(String, Type) Deserialize(String, Type)

Преобразует строку формата JSON в объект заданного типа.Converts a JSON-formatted string to an object of the specified type.

Deserialize<T>(String) Deserialize<T>(String) Deserialize<T>(String) Deserialize<T>(String)

Преобразует указанную строку формата JSON в объект типа T.Converts the specified JSON string to an object of type T.

DeserializeObject(String) DeserializeObject(String) DeserializeObject(String) DeserializeObject(String)

Преобразует указанную строку формата JSON в граф объекта.Converts the specified JSON string to an object graph.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
RegisterConverters(IEnumerable<JavaScriptConverter>) RegisterConverters(IEnumerable<JavaScriptConverter>) RegisterConverters(IEnumerable<JavaScriptConverter>) RegisterConverters(IEnumerable<JavaScriptConverter>)

Регистрирует пользовательский преобразователь в экземпляре JavaScriptSerializer.Registers a custom converter with the JavaScriptSerializer instance.

Serialize(Object) Serialize(Object) Serialize(Object) Serialize(Object)

Преобразует объект в строку формата JSON.Converts an object to a JSON string.

Serialize(Object, StringBuilder) Serialize(Object, StringBuilder) Serialize(Object, StringBuilder) Serialize(Object, StringBuilder)

Сериализует объект и записывает результирующую строку формата JSON в указанный объект StringBuilder.Serializes an object and writes the resulting JSON string to the specified StringBuilder object.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Применяется к

Дополнительно