我正在尝试反序列化这样的JSON:
{ "Parameters": [ 1, "2", true, false, null ] }
使用 System.Text.Json
序列化器。目标类如下所示:
public class Payload {
public object[] Parameters { get; set; }
}
参数始终是原始值,如数字、字符串、布尔值等。
但是似乎System.Text.Json
使用JsonElement
值而不是纯量值填充我的Parameters
数组。以下是代码示例:
var payload = new Payload {
Parameters = new object[] {
1, "2", true, false, null
}
};
var json = JsonSerializer.Serialize(payload);
// result: {"Parameters":[1,"2",true,false,null]}
var deserialized = JsonSerializer.Deserialize<Payload>(json);
// result: deserialized.Parameters are all `JsonElement` values
使用
System.Text.Json
反序列化对象数组时,消费Payload
类的代码不依赖于它,这是与序列化器无关的。有没有一种方法可以使用System.Text.Json
反序列化对象数组并返回纯量值而不是JsonElement
?
JsonConverter<object>
吗? - Pavel Anikhouski