1

私のjson応答には、「20.0000」のような金額の値があります

のように解析しています

id jsonObject1 = [NSJSONSerialization JSONObjectWithData:responseData7 options:NSJSONReadingAllowFragments error:nil];
AmountArray = [jsonObject1 valueForKey:@"Amt"];

私の問題は、jsonObject1を(チェックするために)印刷すると、金額の値が「20.0000」ではなく「20」になることです。しかし、Web サービスからの実際の値は「20.0000」です。それを正しく解析する方法は?

4

3 に答える 3

3

JSON 形式 ( http://json.orgと比較してください) は、文字列数値を区別 します。文字列は引用符で囲みます。たとえば、

"Hello world"
"20.0000"
"20"

数値は引用符で囲みません。たとえば、

20.0000
20

"20.0000"とはまったく"20"別の文字列ですが、20.000020同じ実数です。

JSON 数値はNSNumber(またはNSDecimalNumber) に変換されます。ただし、この数値が JSON でどのように記述されているかは関係ありません。これは同じ数値です。言っても意味がない

Web サービスからの実際の値は「20.0000」です

Web サービスからの値は、20その数値がどのように記述されていても実数であるためです。

何らかの理由で20とを区別する必要がある場合、Web サービスは値を文字列(引用符で囲む) として書き込む必要があります。20.0000

于 2013-07-11T11:10:49.220 に答える