将包含数组的JSON对象反序列化为C#对象
这是我的JSON字符串:将包含数组的JSON对象反序列化为C#对象,c#,json,deserialization,C#,Json,Deserialization,这是我的JSON字符串: {"type":"motor","ids":["1","2","5","7","8","10"]} 这就是我想从中生成的对象: public class ElementArray { public ElementType type; public String[] ids; public ElementArray() { } } 我怎样才能做到这一点?我在谷歌上搜索了Json.NET,但他们只解释了如何将包含数组的对象反序列化为字段
{"type":"motor","ids":["1","2","5","7","8","10"]}
这就是我想从中生成的对象:
public class ElementArray {
public ElementType type;
public String[] ids;
public ElementArray() {
}
}
我怎样才能做到这一点?我在谷歌上搜索了Json.NET,但他们只解释了如何将包含数组的对象反序列化为字段,而没有解释如何反序列化(请参见上面的类)
我试过的是
JavaScriptSerializer jss = new JavaScriptSerializer();
ElementArray elements = jss.Deserialize<ElementArray>(strJson);
JavaScriptSerializer jss=new JavaScriptSerializer();
ElementArray elements=jss.Deserialize(strJson);
但是当我调试代码时,字段
ids
包含null
我处理json最简单的方法是使用newtonsoft.json库
下面是如何反序列化对象的示例:
阅读并提供一份报告。这段代码不会编译,如果您这样修复它,它将正常运行。当您使用.NET的JavaScriptSerializer时,您还链接到Newtonsoft.Json文档。我使用JavaScriptSerializer是因为在遇到这个问题之前,我一直在使用JavaScriptSerializer。我链接了NewtonSoft.JSON文档,因为我在谷歌上搜索了它,但只找到了我链接的例子,在我看来,这个例子不太合适。对象有一个集合成员没有什么特别的。我复制了这个JSON和代码,它运行得很好。同样,阅读并创建一个。在简化示例的过程中,您遗漏了一些对于再现您遇到的问题至关重要的内容。您确定这正是您要反序列化的json吗?我在LINQPad中尝试了你的代码,并使用了你给出的确切示例,它似乎工作得很好。实际上,在我重写了整个过程之后,它对我起到了作用。。。但是谢谢你的帮助!我想这就是我说的。但是我在使用
JavaScriptSerializer
时也能做到这一点。这个答案是如何获得三张赞成票并被接受的?OP使用JavaScriptSerializer发布了一个不可复制的问题。此答案错误地建议使用Newtonsoft.Json。是的,后者有更好的API和更多的功能,但它不能解决OP的问题,因为没有。“使用库Y”从来不是“如何使用库X使此代码工作?”的答案。