簡體   English   中英

將JSON ARRAY轉換為NSNumber數組

[英]Converting JSON ARRAY into NSNumber Arrays

我已從JSON Web服務檢索數據並將其保存到以下數組_soldamount =(0,0,0,0,“ 62.69”,“ 48.3”,81,“ 59.83”,“ 162.57”,0,“ 40.67 “,),我相信此數組將另存為字符串。 如何將該數組轉換為NSnumbers數組? 謝謝您的幫助!

NSArray *_soldamount = @[ @0, @0, @0, @0, @"62.69", @"48.3", @81, @"59.83", @"162.57", @0, @"40.67"];
NSArray *numbers = [_soldamount valueForKey:@"doubleValue"];

創建一個NSNumber數組。 原始數組可以包含NSNumberNSString對象。

您可以使用以下代碼進行操作:

NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *e = nil;
id json = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&e];

json變量中存儲的內容取決於JSON數據。 它通常是NSDictionaryNSArray ,看起來您的可能是NSArray

如果打算將這些值存儲為數字,則您的Web服務應按原樣返回它們。 換句話說,無論字符串是否為數字,帶引號(“)的值都是字符串。

如果您無法控制Web服務,但仍希望將這些值存儲為NSNumbers,則可以使用[NSNumber numberWithFloat:[string floatValue]]或者如果字符串可能包含較大的值,則可以使用[string doubleValue]高精度浮點值。

如果尚未使用NSJSONSerialization類,請參見Gavin的答案。

NSError *error;
NSDictionary *json = [NSJSONSerialization 
    JSONObjectWithData:responseData
    options:kNilOptions
    error:&error];
NSArray *soldAmount = [json objectForKey:@"amount"]; // Your array of strings.
// Convert string array to number array
NSMutableArray *numberArray = [NSMutableArray array];
[soldAmount enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    [numberArray addObject:[NSNumber numberWithFloat:[(NSString *)obj floatValue]]];
}];

使用[NSnumber numberWithInteger:[string integerValue]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM