【问题标题】:Deserialize json formatted string on server side在服务器端反序列化 json 格式的字符串
【发布时间】:2012-11-15 00:18:12
【问题描述】:

我正在将我的数组数组从客户端发送到服务器。像这样在stringify之后使用jQuery ajax方法

JSON.stringify({ list: FinalList })

在服务器端,我得到了这样的结果

{\"list\":[[\"Full Name\"],[\"Select any one\",\"Option 1\",\"Option 2\",\"Option 3\"],[\"address\"],[\"contact name\"]]}

但我无法再次将其更改为原始形式。我尝试使用JavaScriptSerializer,但无法获得所需的结果。它给了我一个object

如何将其反序列化为原始形式?

【问题讨论】:

标签: c# jquery json deserialization stringify


【解决方案1】:

JavaScriptSerializer 中的 Deserialize(String) 方法需要一个 Type 参数,它告诉它要反序列化到哪个类型。

您必须有一个与您的 javascript 对象具有相同结构的类(具有名称为“list”的 List 或 Array 属性),例如 MyType。然后使用 Deserialize(text) 获取正确的 MyType 实例。

MyType 类应该是这样的:

public class MyType
{
    public IList<string[]> List { get; set; }
}

【讨论】:

    【解决方案2】:

    我遇到了类似的问题,最终需要不同的解决方案。我有一个包含多个嵌套模型的复杂模型,虽然我有默认/无参数构造函数(如果你不这样做,它实际上会给你一个很好的 500 错误)我没有在默认构造函数中更新我的嵌套模型。一旦我在每个默认构造函数中实例化了这些,反序列化器就能够完美地构建我的对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-31
      • 1970-01-01
      • 1970-01-01
      • 2020-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多