0

サーバーからエンドユーザーにJSON文字列を返す必要があります。エンドユーザーには、文字列であると文書化されているフィールドがありますが、フィールドの値は常に数値であるため、常に次のように返す必要があります。

{"attr": "99"}

またはこれも有効ですか:

{"attr": 99}

クライアントは、99 は文字列であると文書化されているため、引用符で囲む必要があると不満を漏らしており、パーサーは数値 99 を数値型に解析して問題を引き起こします。

ありがとう

4

3 に答える 3

2

tl;dr 「..は文字列であると文書化されている」ため、 string を使用します

文字列 (例: "99") と数字(例: 99) は、JSONの 2 つの異なる種類の値です。

一部のコンシューマは、デシリアライズ時に文字列と数値の間で自動的に変換できますが、他のコンシューマはできません。この場合、「できない」または「できない」ように見えます。外部 API が指定されているため、それを尊重する必要があります。少なくとも、それが機能しない場合、それはコードの破損ではありません;-)

于 2013-10-17T19:46:53.060 に答える
0

引用する必要があります。クライアントは文字列値を期待しており、これは明示的に文書化されているため、無効にする意味はありません。

于 2013-10-17T19:53:48.007 に答える
0

常に数値であることが保証されていて、それを数値として扱いたい場合は、引用符を外してください。数値以外の値を取得できる場合、または文字列として扱いたい場合は、引用符で囲みます。

于 2013-10-17T19:46:12.440 に答える