1

JSONを受信するRESTfulWebサービスがあり、DataContractJsonSerializerを使用してac#クラスに逆シリアル化しますが、これは変更できます。

その目的は、リソースのフィールドを更新することです

例えば:

{
    "firstName" : "Martin"
}

必ずしもすべてのフィールドを更新する必要はありません。JSONで指定されていないフィールドと指定されていないフィールドを検出する方法を見つけたいと思っていました。

ただし、指定されていないフィールドとnullに更新する必要があるフィールドの違いを区別する方法がわからないため、これを行う方法を見つけることができません。

例:(フィールドを更新しないでください):

{}

vs:(firstNameフィールドをnullに更新)

{
    "firstName" : null
}

これに取り組むための最良の方法は何ですか?

4

2 に答える 2

1

ランダムな文字列で初期化されたフィールドを使用できると思います

public class TestClass
{
    public string firstName = "some string";
}

を使用して逆シリアル化する{"firstName" : null}と、firstNameはnullになります。{}firstNameを使用して逆シリアル化しても変更されません( some string

PS:DataContractJsonSerializerを使用している場合はDataContract、属性を使用しないでくださいDataMember

于 2012-05-25T06:44:41.243 に答える
0

誰があなたのWebサービスを使用しているかはわかりませんが、これは、(消費者に正しく実行するのではなく)決定してから消費者にどのように機能するかを伝える必要があるように思えます。すべてのフィールドをnullに設定できる、または設定できないと言うのは賢明ではないと思います。そのため、各インスタンスは異なる方法で処理されます。

于 2012-05-25T06:26:55.277 に答える