这是我要自定义序列化的类:
public class MyClass
{
public string Key {get; set;}
public IEnumerable<string> Value {get; set;}
}
如果我有它的列表,正常的序列化会产生以下输出:
[
{
"Key": "MyKey1",
"Value": [
"Value1",
"Value2"
]
},
{
"Key": "MyKey2",
"Value": [
"Value3",
"Value4"
]
}
]
我想要的是从 json-result 中删除属性名称,如下所示:
[
{
"MyKey1": [
"Value1",
"Value2"
]
},
{
"MyKey2": [
"Value3",
"Value4"
]
}
]
所以我决定像这样实现一个自定义的 JsonConverter:
public class MyClassJsonConverter : JsonConverter<MyClass>
{
public override void Write(Utf8JsonWriter writer, MyClass value, JsonSerializerOptions options)
{
//custom code goes here
writer.WriteStartArray(value.Key);
foreach (var val in value.Value)
writer.WriteStringValue(val);
writer.WriteEndArray();
}
}
但这会产生无效的 json:
[
"MyKey1": [
"Value1",
"Value2"
],
"MyKey2": [
"Value3",
"Value4"
]
]
如何解决这个问题?