2013-07-11 193 views
1

我的JSON響應有像「20.0000」如何解析來自JSON響應

我分析它像

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

我的問題是,當我打印(檢查)的含量值jsonObject1一個十進制值,金額值只是'20'而不是'20 .0000'。但是web服務的實際值是'20.0000'。如何正確解析它?

+3

'20'和'20.0000'是相同的數字。 –

+0

價值是否被引用? – borrrden

+0

@borrrden:不,我在NSlog中打印jsonObject1。金額值沒有引用.. – Mano

回答

0

嘗試獲得雙重價值:

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

難道你不是指doubleValue而不是intValue? –

3

JSON格式(比較http://json.org區分。字符串是用引號括起來,例如

"Hello world" 
"20.0000" 
"20" 

號碼不是引號括起來,例如

20.0000 
20 

現在"20.0000""20"是完全不同的字符串,但20.000020相同的實數。 (或NSDecimalNumber)。但這並不重要 這個數字是如何寫在JSON中的,這是相同的數字。它沒有 意義說

從web服務的實際值是'20 0.0000'

,因爲來自Web服務的值是實數20,不管這個數字 如何書面。

如果您有任何理由2020.0000加以區分,那麼Web服務 必須寫入值字符串(引號括起來)。