gpt4 book ai didi

ios - objective-c JSON 文字,嵌套 - 最优雅的解决方案?

转载 作者:行者123 更新时间:2023-11-28 22:00:28 24 4
gpt4 key购买 nike

假设你这样做,

NSString *teste = yourData[@"title"];

如果 "title" 没问题在 json 中完全缺失:你只得到 null .如果你这样做:

NSString *teste = yourData[@"location"][@"city"];

如果"city" json 嵌套中缺少,没问题。如果整个"location"部分不存在,同样没问题

但是!你会经常看到这样的 json," largeImage = "<null>"; "

在这种情况下,如果您使用上面的代码,应用程序将会崩溃。

在实践中你必须这样做:

NSString *imageUrl = nil;
if ([yourResults[thisRow][@"largeImage"] isKindOfClass:[NSDictionary class]])
imageUrl = yourResults[thisRow][@"largeImage"][@"URL"];

我的问题真的是:

是否有一些非常聪明的方法可以覆盖文字语法(即,覆盖底层消息,也许??)来解决这个问题?

所以从本质上讲,使这个概念[@"blah"]在尝试操作之前,基本上首先检查它确实是手头的字典。

很遗憾,因为实际上,您永远无法使用这种美妙的语法

yourData[@"location"][@"city"]

在实践中,由于我概述的问题。

PS 很抱歉之前对这个问题的混淆,Paramag 已修复。下面 - 一个好的 Paramag。

最佳答案

我个人使用 JSON 类别,它返回 null 而不是 NSNull,所以我的代码看起来:

[[json objectForKeyNotNull:@"Key"] objectForKeyNotNull:@"Other"]

因为你想让代码更短,我想我会在 NSDictionary 上创建类别,它可以用作:

[json objectForPath:@"Key.Value"]

这会将路径扩展到键中。

有一些不错的要点看起来像是在做:

https://gist.github.com/Yulong/229a62c1188c3c024247#file-nsdictionary-beeextension-m-L68

关于ios - objective-c JSON 文字,嵌套 - 最优雅的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25283251/

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