发布
社区首页 >问答首页 >用于对象/字典的JSONModel

用于对象/字典的JSONModel
EN

Stack Overflow用户
提问于 2013-12-28 15:02:52
回答 1查看 2.6K关注 0票数 0

我一直在和JSONModel合作,这些教程很有意义。他们解析JSON包含一个具有多个索引的数组。

我想确保JSONModel被允许用于这个数据集: https://gist.github.com/ryancoughlin/8043604

tide不是数组对吗?但是还有tide.tideSummary --它包含了多天的潮汐数据。

AllTide.h

代码语言:javascript
代码运行次数:0
复制
#import "JSONModelLib.h"
#import "Tide.h"

@interface AllTide : JSONModel

@property (strong,nonatomic) NSDictionary<Tide> *tide;

@end

Tide.h

代码语言:javascript
代码运行次数:0
复制
#import "JSONModelLib.h"
#import "TideSummaryStats.h"

@protocol Tide @end

@interface Tide : JSONModel

@property (nonatomic, strong) NSArray<TideSummaryStats> *tideSummaryStats;

@end

TideSummaryStats.h

代码语言:javascript
代码运行次数:0
复制
#import "JSONModelLib.h"

@protocol TideSummaryStats @end

@interface TideSummaryStats : JSONModel

@property (nonatomic, strong) NSString *maxheight;
@property (nonatomic, strong) NSString *minheight;

@end

TideDetailViewController -显示单个位置(详细信息视图)与多个位置的列表

代码语言:javascript
代码运行次数:0
复制
@interface TideDetailViewController () {
    AllTide *_objTide;
}

@end

@implementation TideDetailViewController

- (void)viewDidAppear:(BOOL)animated {

    NSString *locationQueryURL = @"http://api.wunderground.com/api/xxxxx/tide/geolookup/q/43.5263,-70.4975.json";

    //fetch the feed
    _objTide = [[AllTide alloc] initFromURLWithString:locationQueryURL                                         completion:^(JSONModel *model, JSONModelError *err) {

                                             NSLog(@"Tides: %@", _objTide.tide);

                                         }];
}

我读过几个JSONModel教程,这是有道理的,我认为我的JSON格式与教程不同的地方有问题。同样,我的tide不返回数组。

这是利用JSONModel密钥映射器的一个很好的例子吗?

有什么想法吗?如果我还能提供什么,请告诉我。一直潜入水中寻求指导,但有点卡住了。提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2013-12-28 17:41:59

你不需要AllTide.h

试试这个:

TideDetailViewController -显示单个位置(详细信息视图)与多个位置的列表

代码语言:javascript
代码运行次数:0
复制
@interface TideDetailViewController () {
  NSArray *arrTide;
}

@end

@implementation TideDetailViewController

- (void)viewDidAppear:(BOOL)animated {

    NSString *locationQueryURL = @"http://api.wunderground.com/api/xxxxx/tide/geolookup/q/43.5263,-70.4975.json";

    //fetch the feed
    [JSONHTTPClient getJSONFromURLWithString: locationQueryURL
                              completion:^(NSDictionary *json, JSONModelError *err) {

    arrTide = [TideSummaryStats arrayOfModelsFromDictionaries:json[@"tide"][@"tideSummaryStats"]                                                ];

     NSLog(@"Tides: %@", arrTide[0]);

  }];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20815972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档