首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在JSONObject中处理来自RESTful接口的`null`字符串?

如何在JSONObject中处理来自RESTful接口的`null`字符串?
EN

Stack Overflow用户
提问于 2018-06-10 01:54:52
回答 1查看 329关注 0票数 1

这是一个服务返回,它为我们提供了用户的配置文件信息:

代码语言:javascript
复制
{
   email: 'someone@example.com',
   pictureUrl: 'http://example.com/profile-pictures/somebody.png',
   phone: null,
   name: null
}

现在,我们在我们的安卓应用程序中获得这个JSON,并将其转换为JSONObject模型:

代码语言:javascript
复制
JSONObject profileInfo = new JSONObject(profileInfoJson);

我们将UI视图绑定到数据:

代码语言:javascript
复制
email.setText(profileInfo.getString("email"));
phone.setText(profileInfo.getString("phone"));
name.setText(profileInfo.getString("name"));

然后,在我们的TextViewEditView中,我们有了null字符串,而不是什么都没有。

我们可以使用if-then语句检查null的值,但是对于有这么多字段的实际应用程序来说,这太多了。

有没有办法将JSONObject配置为优雅地处理null字符串?

更新:我按照建议使用了带回退的optString,但它没有任何效果:

代码语言:javascript
复制
firstName.setText(profileInfo.optString("firstName", ""));

结果是相同的EditText中有null

EN

回答 1

Stack Overflow用户

发布于 2018-06-10 01:58:24

使用optString,如果找不到合适的值,则返回第二个参数,而不是exception或null

代码语言:javascript
复制
phone.setText(profileInfo.optString("phone","nophone"));
name.setText(profileInfo.optString("name","noname"));

返回按名称映射的值,如果该值存在,则强制(尝试强制转换)该值,如果不存在此类映射,则返回fallback(返回第二个参数)。

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

https://stackoverflow.com/questions/50777051

复制
相关文章

相似问题

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