无法从 JSONModel 初始化模型。我得到零值
Posted
技术标签:
【中文标题】无法从 JSONModel 初始化模型。我得到零值【英文标题】:Not able to initialise a model from JSONModel. I am getting nil value 【发布时间】:2016-12-16 05:55:09 【问题描述】:我无法从 JSONModel 初始化模型。我正在使用JSONModel(因为在这个 poc 之后 .json 很大,需要像这样的第三方库来照顾。)。我的步骤如下:
-
Pod 安装了 JSONModel
创建一个简单的模型,您希望从 url 获取的 .json 进行初始化
项目中的模型。
根据描述,我从中得到了nil
值。
分析我得到nil
值的原因,我认为可能是一个原因。
if (!json || ![json isKindOfClass:[NSArray class]])
return nil;
我在这里得到 .json 值,所以检查一下
[json isKindOfClass:[NSArray class]],
我得到一个nil
值。
在我的模型的 .h 文件中。我在 .m 文件中创建了一个 jokeid 属性,我正在使用此代码
+(JSONKeyMapper*)keyMapper
return [[JSONKeyMapper alloc]initWithModelToJSONDictionary:@@"jokeid":@"jokeid", @"text":@"text"];
我需要一些关于 JSONModel 的“arrayOfModelsFromData:”的指导。我正在发布我的快照和代码
代码在github https://github.com/utsav475908/sdfs 调试快照在这里
【问题讨论】:
你能展示你对 JokeModel 的整个“jsonDict”和结构吗?原因是 jsonModel 将数据与您的属性及其数据类型相匹配。如果无法匹配,它将返回一个空对象。 是的,我已经给出了github的链接。要回答你的问题,jsonDict 是这样的:jokeid = 7; text = "曾经有一条以 Chuck Norris 命名的街道,但后来因为没有人穿过 Chuck Norris 而被改变了"; github 转到 Jsonmodel 库页面。不是你的代码。 zzz github github.com/utsav475908/sdfs 是我的代码的链接 #GeneCode 你能帮我吗,为什么我得到零值。 【参考方案1】:你得到一个 nil 值,因为你的 JSON 对象包含一个字典,而不是一个数组。
为了正确工作,请尝试将您的 json 有效负载更改为以下内容:
[
"jokeid": 1,
"text": "There used to be a street named after Chuck Norris but it was changed because nobody crosses Chuck Norris and lives"
,
"jokeid": 2,
"text": "There used to be a street named after Chuck Norris but it was changed because nobody crosses Chuck Norris and lives"
,
"jokeid": 3,
"text": "There used to be a street named after Chuck Norris but it was changed because nobody crosses Chuck Norris and lives"
,
"jokeid": 4,
"text": "There used to be a street named after Chuck Norris but it was changed because nobody crosses Chuck Norris and lives"
,
]
您将收到一个包含 4 个对象的数组。
【讨论】:
以上是关于无法从 JSONModel 初始化模型。我得到零值的主要内容,如果未能解决你的问题,请参考以下文章