2

私はJSONをASP.NETMVC4WebサービスにHTTP投稿しています。JSONは、Nullable <Int16>プロパティ(別名「short?」)を含むオブジェクトに逆シリアル化されます。投稿されたJSONがこのプロパティの値を引用符で囲むと、値は正常に逆シリアル化されます。引用符で囲まれていない場合、値は常にnullになります。

デシリアライズされるC#オブジェクト:

Class MyClass {
short? MyLittleNumber { get;set; }
}

そして、JSONがこれである場合:

{MyLittleNumber:"5"}

それは動作しますが、これである場合:

{MyLittleNumber:5}

値の読み取りに失敗し、デフォルトでNULLになります。

4

1 に答える 1

5

解決策:short(Int16)をint(Int32)に変更すると、引用符で囲まれているかどうかに関係なく、値が読み取られるようになりました。

この区別を理解する前に、昨日約3時間この問題に取り組んだので、ここに答えを投稿したいと思いました。これは、ASP.NETMVCクラスがJSONをクラスに逆シリアル化する方法のいくつかの欠点が原因であると思います。

null許容小数/倍精度浮動小数点数に関する関連する質問がここにあります。 null許容小数をjsonからASP.NETMVCコントローラーアクションに渡しますか?

于 2012-09-27T13:42:26.103 に答える