gpt4 book ai didi

ios - 带字典的 JSON - 嵌套对象转换为字符串并显示

转载 作者:行者123 更新时间:2023-11-29 12:56:58 25 4
gpt4 key购买 nike

我在这里看到了一些与我正在做的事情相关的帖子,但我正在处理一些我想提取的嵌套对象。

这是我返回的数据样本 - https://gist.github.com/ryancoughlin/8043604

到目前为止,我的标题中有这个:

#import "TideModel.h"

@protocol TideModel
@end

@implementation TideModel

-(id)initWithDict:(NSDictionary *)json {
self = [super init];
if(self) {
self.maxheight = [dictionary valueForKeyPath:@"tide.tideSummaryStats.minheight"];
self.minheight = [dictionary valueForKeyPath:@"tide.tideSummaryStats.maxheight"];
self.tideSite = [dictionary valueForKeyPath:@"tide.tideInfo.tideSite"];
}
return self;
}
@end

我已经为每个字符串声明了一个属性,我正在相应地访问它。
但是我上面的方法不起作用,也许是因为它不知道要钻入什么来纠正?...或者会吗?

最佳答案

  1. tide.tideSummaryStats 返回一个数组。
  2. tide.tideInfo 返回一个数组。

所以你不能一直执行 -valueForKeyPath:


此外,这是不正确的:[dictionary valueForKeyPath:...];
它应该是:[json valueForKeyPath:...];

因为 json 是传递的 NSDictionary 变量的名称(不是 dictionary)


试试这个(不确定):

-(id)initWithDict:(NSDictionary *)json {
self = [super init];

if(self) {
NSArray *arrOfTideSummaryStats = [json valueForKeyPath:@"tide.tideSummaryStats"];
NSDictionary *dctOfTideSummaryStats = [arrOfTideSummaryStats objectAtIndex:0];

//since self.maxheight and self.minheight are NSString objects and
//the original keys "minheight" & "maxheight" return float values, do:
self.maxheight = [NSString stringWithFormat:@"%f", [dctOfTideSummaryStats valueForKey: @"maxheight"]];
self.minheight = [NSString stringWithFormat:@"%f", [dctOfTideSummaryStats valueForKey: @"minheight"]];

/*============================================================*/

NSArray *arrOfTideInfo = [json valueForKeyPath:@"tide.tideInfo"];
NSDictionary *dctOfTideInfo = [arrOfTideInfo objectAtIndex:0];

self.tideSite = [dctOfTideInfo valueForKey:@"tideSite"];
}

return self;
}

类似问题:

关于ios - 带字典的 JSON - 嵌套对象转换为字符串并显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20817582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com