Json.Net 是否可以将以下片段转换为使其数组成员变平?
{
"format": "json",
"artist": "artist1",
"description": [
"description1",
"description2"
]
}
像这样 :
{
"format": "json",
"artist": "artist1",
"description": "description1",
"description": "description2",
}
简而言之,一个对象看起来像一个字典,但允许重复键。
尝试使用自定义 JsonConverter,如下所示:
internal class MyConverter : JsonConverter
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
var strings = (string[])value;
foreach (var s in strings)
{
writer.WritePropertyName(writer.Path);
writer.WriteValue(s);
}
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
throw new NotImplementedException();
}
public override bool CanConvert(Type objectType)
{
return objectType == typeof(string[]);
}
}
但是在写入属性的名称时会引发 JsonWriterException :
状态 Property 中的 Token PropertyName 会导致 JSON 对象无效。小路 ''。
创建这样的无效对象很好,因为我以后没有反序列化它的计划,实际上我需要它来创建以下形式的 url 参数字符串:
格式=json&艺术家=艺术家1&description=description1&description=description2
尝试使用 Json.Net 基础设施来实现这一点值得付出努力吗?