繁体   English   中英

将JSON ARRAY转换为NSnumber数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM