Tag: jsonserializer

如何使用变量名反序列化可变大小的JSON字符串

使用固定字段名称反序列化固定大小的固定结构,JSON字符串很简单:只需定义一个包含所有字段的类(具有正确的类型和名称,在编译时都是已知的)。 反序列化可变大小的重复嵌套对更具挑战性,但可以在类内部的List 的帮助下完成。 但是,如果在编译时字段的名称未知,我该怎么办? 例如: { “container”:{ “GD01AB491103”:{ “field_id1”:11, “field_id2”:12, “field_id3”:13, “field_id4″:”fourteen” }, “DC01AB491103”:{ “field_id1”:21, “field_id2”:22, “field_id3”:23, “field_id4″:”twenty four” }, “GH01AB451101”:{ “field_id1”:31, “field_id2”:32, “field_id3”:33, “field_id4″:”thirty four” } . . . }, “terminator” } 如何反序列化这样的字符串? (最好使用.NET的JavaScriptSerializer,但如果它太弱/无能力,我可能需要诉诸其他东西) 编辑 :澄清挑战的性质:在上面的例子中,为了定义一个类: public class ?????? { public int field_id1 {get;set;} public int field_id2 {get;set;} public int field_id3 {get;set;} public string […]

如何将JSON响应映射到自定义类对象

我使用unirest.io在C#中调用API。 我得到了JSON响应(作为response.Body )。 { “persons”: [{ “id”: “a010”, “name”: “Joe”, “subjects”: [ “Math”, “English” ] }, { “id”: “b020”, “name”: “Jill”, “subjects”: [ “Science”, “Arts” ] }] } 我尝试将此映射到我的自定义类对象,如下所示。 HttpRequest request = Unirest.get(API_V1_URL).header(“accept”, “application/json”); HttpResponse response = request.asString(); var serializer = new JavaScriptSerializer(); persons = serializer.Deserialize(response.Body); 但它总是通过设置persons.infos = NULL来传递; 我的自定义课程 public class Persons { public […]

有没有办法JSON.NET-序列化List 的子类,还有额外的属性?

好的,我们正在使用Newtonsoft的JSON.NET产品,我非常喜欢。 但是,我有一个简单的类结构用于层次结构位置,看起来大致像这样…… public class Location { public string Name{ get; set; } public LocationList Locations{ get; set; } } // Note: LocationList is simply a subclass of a List // which then adds an IsExpanded property for use by the UI. public class LocationList : List { public bool IsExpanded{ get; set; } } public […]