【发布时间】:2017-09-15 04:45:10
【问题描述】:
如何忽略使用改造 2.0 和 gson 的两个不同用户的响应所缺少的 json 键。
这是现有用户的 json 响应。
{
"details" :{
"userId" : "548sdry5687rtyde346asf",
"email: "avc@zxc.com",
"name":{
"first":"Jhon",
"last": "Madan",
"_id":"69874154sdfadg58dfa245"},
"gender":"male",
"location":{
"address":"12547",
"city":"delhi",
"state":"Delhi"
}
}
}
这是给新用户的回复
{
"details":{
"userId":"1258afafg287fae23sf",
"email": "qwea@gmail.com",
"name":{
"first":"Mohan",
"last":"mehar",
"_id":"kdg2467edfdfh356thdg"}
}
}
【问题讨论】:
-
忽略是什么意思?如果密钥不存在,通常 json 库不会崩溃。这些字段将只是空...
-
嗨 Fred,忽略这个意义上的字段,在新的用户响应中签出,我们没有“位置”对象。为了设置用户配置文件的视图,我们需要从它们各自的 pojo 类中访问字符串。在这种情况下,当我尝试注册一个新用户时,它只包含姓名和电子邮件,它会在位置引发空指针异常,因为新用户不存在位置对象。
-
嗯,但这不是改造或 gson 的问题。您必须在代码中考虑它可以为 null 并且不显示它的事实
-
如何将其设为null或不显示..请帮我解决它
-
同意@Fred。要么创建一个没有这些字段的新
User类,要么在访问这些字段之前执行if-not-null检查。
标签: android json retrofit2 gson