小编Jus*_*tin的帖子

DeserializeObject<T> 返回具有空/默认值的对象

如果我尝试反序列化以下 json

{ "error": "Invalid order request" }
Run Code Online (Sandbox Code Playgroud)

我希望在将其反序列化为完全不同结构的类时会抛出异常

var response = JsonConvert.DeserializeObject<OrderResponse>(errorJson);
Run Code Online (Sandbox Code Playgroud)

但它返回一个具有默认/空值的对象

response.orderNumber == 0;           // true
response.resultingOrders == null;    // true
Run Code Online (Sandbox Code Playgroud)

我的 OrderResponse 类如下:

public class OrderResponse
{
    public long orderNumber;
    public List<Order> resultingOrders;

    [JsonConstructor]
    public OrderResponse(long orderNumber, List<Order> resultingOrders)
    {
        this.orderNumber = orderNumber;
        this.resultingOrders = resultingOrders;
    }
}

public class Order
{
    public long orderId
    public decimal amount;
    public string type;

    [JsonConstructor]
    public Order(long orderId, decimal amount, string type)
    {
        this.orderId = orderId;
        this.amount = amount; …
Run Code Online (Sandbox Code Playgroud)

c# json.net

4
推荐指数
1
解决办法
1936
查看次数

标签 统计

c# ×1

json.net ×1