[英]converting JSON ARRAY into NSnumber Array
我使用以下代码将从JSON接收的数据保存到数组中。
for (int i =1 ; i<[json count];i++)
{
[_datearray addObject:[[json objectAtIndex:i] valueForKey:@"Date"]];
[_soldarray addObject:[[json objectAtIndex:i] valueForKey:@"SoldAmount"]];
}
我不确定它保存在哪种数据类型中,有没有一种方法可以将一个数组另存为NSdate数组,另一种另存为NSnumber数组。 因为我将核心绘图与这两个数组一起使用,但是数据不会绘图,因为格式不同? 我创建了一个简单的数组:
NSArray *prices;
prices = [NSArray arrayWithObjects:
[NSDecimalNumber numberWithFloat:0],
[NSDecimalNumber numberWithFloat:1],
[NSDecimalNumber numberWithFloat:1],
[NSDecimalNumber numberWithFloat:2],
[NSDecimalNumber numberWithFloat:3],
nil];
数据绘制得很好。 所以我很确定这是数据类型问题。 但我可能是错的。 谢谢您的帮助!
如果从JSON返回的日期是字符串格式,则需要一个数据格式化程序将JSON字符串转换为NSDate。
//接口声明中的某些位置
@property (strong, nonatomic) NSDateFormatter * _dateFormatter_en_US_POSIX;
然后向类添加方法
/** create a date formatter to send data to a JSON consumer
*
*/
- (NSDateFormatter *)dateFormatterForjsonDateStringFromNSDate
{
if (_dateFormatter_en_US_POSIX){
return _dateFormatter_en_US_POSIX;
}
_dateFormatter_en_US_POSIX = [[NSDateFormatter alloc] init];
NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[_dateFormatter_en_US_POSIX setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'SSS'Z'"];
[_dateFormatter_en_US_POSIX setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
[_dateFormatter_en_US_POSIX setLocale:enUSPOSIXLocale];
return _dateFormatter_en_US_POSIX;
}
-(NSDate*) dateWithJSONString:( NSString*) dateStr
{
NSDateFormatter *dateFormatter = [self dateFormatterForjsonDateStringFromNSDate];
return [dateFormatter dateFromString:dateStr];
}
然后更改:
[_datearray addObject:[[json objectAtIndex:i] valueForKey:@"Date"]];
至:
[_datearray addObject:[self dateWithJSONString:[[json objectAtIndex:i] valueForKey:@"Date"]]];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.