不支持数组的反序列化字典 [英] Dictionary is not supported for deserialization of an array

查看:991
本文介绍了不支持数组的反序列化字典的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

更新:

我有以下的code,其中我试图使用返回 JSON数据,反序列化,并返回1份的数据返回给用户。

I have the following code, where I am trying to use returned JSON data, deserialize it, and return 1 part of that data back to the user.

<%@ Page Language="VB" Debug="True" EnableViewState="false" %>
<%@ Import Namespace="System.Web.Script.Serialization" %>

<script runat="server">
    Class Item
        Public Property some_number() As Double
            Get
                Return m_some_number
            End Get
            Set(ByVal value As Double)
                m_some_number = value
            End Set
        End Property
        Private m_some_number As Double
        Public Property some_text() As String
            Get
                Return m_some_text
            End Get
            Set(ByVal value As String)
                m_some_text = value
            End Set
        End Property
        Private m_some_text As String
        Public Property serial_number() As String
            Get
                Return m_serial_number
            End Get
            Set(ByVal value As String)
                m_serial_number = value
            End Set
        End Property
        Private m_serial_number As String
    End Class


    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        Response.Clear()
        Response.Write(set_profiles())
        Response.End()
    End Sub

    Function set_profiles() As String
        ' get returned json data
        Dim strChanged As String = CType(Request.Form("strChanged"), String)

        ' deserialize returned data
        Dim jss = New JavaScriptSerializer()

        ' assuming i need to change this line now?
        Dim dict As Dictionary = jss.Deserialize(List(Of Item))(strChanged)

        Return dict("some_number")
    End Function
</script>

我不明白如何反序列化到项目类,那么如何获取数据退了出来。

I don't understand how to deserialize into the Item class, then how to get the data back out.

推荐答案

您的数据是一个数组,而你试图反序列化到字典。这是行不通的。

Your data is an array, and you're trying to deserialize it into Dictionary. This won't work.

要么改变你的输入数据或将其反序列化到一个数组中。

Either change your input data or deserialize it to an array.

您还可以声明一个类,并用它在反序列化。

You can also declare a class and use it in the deserialization.

C#,不好意思:

class Item
{
    public double some_number { get; set; }
    public string some_text { get; set; }
    public string serial_number { get; set; }
}

和反序列化到列表(项目)

这篇关于不支持数组的反序列化字典的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆