【发布时间】:2015-08-11 20:56:58
【问题描述】:
考虑以下派生自List 的类:
public class Foo : List<string>
{
public string Bar { get; set; }
}
使用 JSON.NET 对其进行序列化会转储 Bar 属性并生成一个常规数组:
var foo = new Foo() { "a", "b", "c" };
foo.Bar = "baz";
JsonConvert.SerializeObject(foo); // ["a","b","c"]
我可以做些什么来获得以下类似数组的对象作为我的序列化结果?
{"0": "a", "1": "b", "2": "c", "length": 3, "bar": "baz"}
自定义序列化程序是唯一的方法,还是有 JSON.NET 设置可以为我做到这一点?
【问题讨论】:
-
对于这样一个非常专业的案例,您期望什么样的设置?
-
我希望派生集合不是那种专门化的并且可以由框架处理。
-
Vache,但是你期望的json是很专业的.....
-
@Vache:您可以尝试封装而不是继承。只要您对在 json 中反映的内容感到满意。
-
@Eser,它是一个简单的类数组对象,是 JavaScript 中常见的概念
标签: c# serialization json.net