我使用以下代码将从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];
并且数据很好。所以我很确定这是数据类型问题。但我可能是错的。谢谢你的帮助!
答案 0 :(得分:0)
如果从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"]]];