c# - 使用 JavaScriptSerializer C# 反序列化 JSON

标签 c# json serialization

我正在尝试使用 JavaScriptSerializer 在 C# 中反序列化一些 JSON,并且有几个关于 DataMember 的使用的问题。

  1. 我希望我的 DataContract 类有一个名为“Parts”的属性,该属性映射到一个 JSON 对象“rings”。如果我设置 DataMember Name="rings"并将属性命名为“Rings”,一切都会按预期进行。但是,如果我将属性命名为“Parts”(保留 DataMember Name="rings")。零件始终为空。

    // this is always null
    [DataMember(Name = "rings")]
    public ArrayList Parts { get; set; }
    
    // this works fine
    [DataMember(Name = "rings")]
    public ArrayList Rings { get; set; }
    
  2. 反序列化后,是否可以将多个 json 对象映射到单个属性。例如,输入的 json 字符串可能不包含“环”,而是“点”或“线”。我可以将所有三种类型都映射到 Parts 属性吗?

最佳答案

JavaScriptSerializerSystem.Web.Extensions 中并且不知道 DataMemberAttribute

尝试 DataContractJsonSerializer它位于 System.Runtime.Serialization.Json(.net 40 - System.Runtime.Serialization.dll,.net 3.5 - System.ServiceModel.Web.dll)

关于c# - 使用 JavaScriptSerializer C# 反序列化 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2516575/

相关文章:

c# - 如何计算 XML 中具有相同 innertext 值的节点数

c# - C# 中的附件集合附件集合

c# - 通过序列化支持的单例类

ruby-on-rails - rails 3 : Escape characters (\) appearing in part of JSON string

c# - 在 WPF 按钮中添加图像

c# - 将 JsonResult 渲染为 Razor 中的字符串

javascript - 无法获取 JSON 字符串的元素

javascript - 如何从jsondata中获取key的值

java - 组织.json.JSONException : Unterminated object at character 103 of

C# - 序列化/反序列化或保存/加载元组列表