0

サード パーティの JSON API を使用しようとしていますが、null 値には値がまったく指定されていないか、結果から除外されているか、デフォルト値が含まれていると予想されていました。代わりに、値が存在しない場合、API は単一の値 (配列になるものではない) の代わりに [] を返します。

"SomeExpectedDate": [],
"SomeExpectedString": [],
...

JayRock JsonConvert を使用してこれを逆シリアル化しようとすると、単一の String または DateTime 値にロードしようとしているために失敗します。

これは正常ですか、それとも API プロバイダーに文句を言うべきですか (これは最近導入された API です)。

4

2 に答える 2

2

一般的に、いいえ。JSON[]では空の配列を示します。null 値を表す場合は、nullキーワードを使用します。お気に入り:

{"someString": null}

JSON で null 値をどのように表現するかという点では、それは完全にあなた次第です。空の配列が null と同等であることを理解するように受信コードを記述すれば、それは確実に機能します。

しかし、私の意見では、それは非常に疑わしい/信頼できない/困難な維持アプローチです。nullキーワードを使用するか、それが失敗した場合は空の文字列 ( ) を使用する方がはるかに理にかなっています{"someString": ""}

編集:

この問題がサードパーティ API の使用に関連しているというあなたの最新情報に対応するには、これは間違いなく API プロバイダーで取り上げるべき問題だと思います。彼らが[]本当に意味するのがnull. 彼らが送信しているものは技術的にはまだ有効な JSON ですが[]null.

于 2012-10-07T01:56:11.387 に答える
0

使用しているサード パーティの API で空の配列が null であると示されている場合、それは完全に有効であり、その周りにコードを記述する必要があります。

json には実際のキーワードがあるため、以前に見たものとは確かに異なりますnullが、完全に合法的な構文です。

于 2012-10-07T02:23:25.540 に答える