我有一个RESTful Web服务接收JSON,并使用DataContractJsonSerializer将其反序列化为c#类,但这可以更改。
其目的是更新资源上的字段
e.g:
{
"firstName" : "Martin"
}
我不一定要更新所有字段,我希望找到一种方法来检测JSON中未指定的字段。
我无法找到这样做的方法,因为我不知道如何区分未指定的字段和应该更新为null的字段
例如:(不要更新任何字段):
{}
vs :(将firstName字段更新为null)
{
"firstName" : null
}
最好的方法是什么?
答案 0 :(得分:1)
我认为你可以使用一些用随机字符串
初始化的字段public class TestClass
{
public string firstName = "some string";
}
如果使用{"firstName" : null}
反序列化,firstName将为null。如果使用{}
反序列化,firstName将不会更改(some string
)
PS:如果您使用的是DataContractJsonSerializer,请不要使用DataContract
或DataMember
属性
答案 1 :(得分:0)
我不确定是谁在使用您的网络服务,但这听起来像是您应该决定的事情,然后告诉您的消费者它是如何工作的(而不是依靠消费者做正确的事)。我认为将可以或不能设置为null的所有字段都是明智的,因此每个实例的处理方式都不同。