使用Json.NET的WebApi2控制器无法反序列化单个属性

时间:2015-09-18 00:43:08

标签: c# .net post json.net asp.net-web-api2

将带有已确认格式良好的对象的POST请求发送到使用Json.NET进行反序列化的WebApi2控制器时,未正确解析单个属性。

请求中发出的JSON如下:

{"ParentId":8,"Data":{"Description":"Estimated Man Hours ONSITE","ExternalItemKey":"Services:Man Hours","Quantity":0,"Price":150,"EstimatedCost":60},"ActualCost":60,"DateProvided":"2015-09-18T00:26:45.000Z","ReferencedQuotedDeliverableExternalGuid":"1b7e42be-670e-4d84-9600-15dff530363e","Notes":""}

Data.EstimatedCost值反序列化为0,可能因为某些原因没有被解析。正确解析所有其他值。

Json.NET的版本是6.0.0.0

1 个答案:

答案 0 :(得分:0)

我找到的解决方案是使用以下语法标记无法反序列化的变量:

using Newtonsoft.Json;

public class Deliverable
{
    [JsonProperty(Required = Required.Always)]
    public decimal EstimatedCost { get; private set; }
}