c# - 使用 JavaScriptSerializer 的反序列化缺少字段

标签 c# json deserialization

字段被忽略。我成功取回了 2 个对象的列表,但没有填充任何字段。我究竟做错了什么? (不幸的是,我无法控制 json 格式。它正是以这种结构到达的。

using System.Web.Script.Serialization;

public void myMethod {
  string myContent = @"
  [
    {
        "my_object": {
            "city": "city 1", 
            "myAge": 15
        }
    },
    {
        "my_object": {
            "city": "city 2", 
            "myAge": 18
        }
    }
  ]";

  JavaScriptSerializer serializer = new JavaScriptSerializer();
  List<my_object> list = serializer.Deserialize<List<my_object>>(myContent);

}

public class json_content {
  public string city { get; set; }
  public int myAge { get; set; }
}

最佳答案

这段代码解决了你的问题:

public void myMethod()
{
    string myContent = @"
        [
            {
                ""json_content"": {
                    ""city"": ""city 1"", 
                    ""myAge"": 15
                }
            },
            {
                ""json_content"": {
                    ""city"": ""city 2"", 
                    ""myAge"": 18
                }
            }
        ]";

    JavaScriptSerializer serializer = new JavaScriptSerializer();
    List<wrapper> list = serializer.Deserialize<List<wrapper>>(myContent);
}

public class wrapper
{
    public json_content json_content { get; set; }
}

public class json_content
{
    public string city { get; set; }
    public int myAge { get; set; }
}

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

相关文章:

C# 控制同时运行的线程数

c# - 没有命名空间的 XML 反序列化

c# - 从对象的旧版本反序列化对象的新版本

c# - 从命令行调用 Roslyn 分析器

c# - 我有时会添加代码来插入断点。还有别的办法吗?如果没有,最好的解决方案是什么?

visual-studio-2010 - 删除解决方案中未使用的 cs 文件

java - 为什么即使我没有运行错误,应用程序也不显示任何内容?

javascript - 从 Json 获取 Google 图表

c# - 无法在 C# 中解析 JSON 响应

c# - 在 C# 中使用嵌套数组反序列化 JSON