java - 如果使用for循环不为null,如何检索ArrayList中元素的值?
问题描述
在我的应用程序中有数据刮板,它从 检索有关电影的信息themoviedb.org
api
,我要检索logo_path
的production_companies
一项是提供为 的JSONArray
,但也有value
可能logo_path
是null
(示例如下)
我的目标是实现以下目标:-
例如JSONArray
提供 6 个元素(6 个生产公司)
如果列表value
的logo_path
最后一个元素(索引 5)的null
值是,那么我想检索第一个元素(索引 0)的值,它不是null
如果logo_path
列表的最后一个元素(索引 5)的值不是 null
,那么我想检索最后一个元素(索引 5)的值
如果第一个是null
并且最后一个也是null
,那么我想检索value
介于两者之间的那个不是null
更新
生产公司示例
"production_companies":[
{"id":429,"logo_path":"/2Tc1P3Ac8M479naPp1kYT3izLS5.png","name":"DC Comics","origin_country":"US"},
{"id":923,"logo_path":"/5UQsZrfbfG2dYJbx8DxfoTr2Bvu.png","name":"Legendary Pictures","origin_country":"US"},
{"id":9996,"logo_path":"/3tvBqYsBhxWeHlu62SIJ1el93O7.png","name":"Syncopy","origin_country":"GB"},
{"id":118865,"logo_path":null,"name":"Isobel Griffiths","origin_country":"GB"},
{"id":9993,"logo_path":"/2Tc1P3Ac8M479naPp1kYT3izLS5.png","name":"DC Entertainment","origin_country":"US"},
{"id":174,"logo_path":"/IuAlhI9eVC9Z8UQWOIDdWRKSEJ.png","name":"Warner Bros. Pictures","origin_country":"US"}]
我的代码
try {
JSONArray production_companies = jObject.getJSONArray("production_companies");
for (int i = 0; i < production_companies.length(); i++) {
if (jObject.getString(name: "logo_path").equalsIgnoreCase(string: "null")) // when the "logo_path" is "null"
movie.setStudioUrl(baseUrl + MizLib.getStudioUrlSize (mContext) + MizLib.getStringFromJSONObject (production_companies.getJSONObject (i - i), "logo_path", "")); // set the the first production company
else if (!jObject.getString ("logo_path").equalsIgnoreCase ("null")) // when the "logo_path" is not "null"
movie.setStudioUrl(baseUrl + MizLib.getStudioUrlSize (mContext) + MizLib.getStringFromJSONObject (production_companies.getJSONObject (i+1), "logo_path", "")); // set the the first production company
}
} catch (JSONException e) {}
api提供的数据类型
production_companies array[object]
name string
id integer
logo_path string or null
origin_country string
解决方案
if(jObject.getString("logo_path").equalsIgnoreCase("null"))
如果要检查 getString("logo_path") 是否返回 null,则此行正在检查它是否为字符串文字“null”,那么您需要将其更改为
if(jObject.getString("logo_path") == null)
推荐阅读
- python-3.x - 使用 GridSearchCV 制作自定义记分器
- android - 是否可以在不依赖 kotlin-stdlib 的情况下在 JVM 或 Android 上使用 kotlin?
- reactjs - handleSubmit 函数中的 this.setState 未重置表单输入
- wpf - HOWTO:当鼠标位于 WPF 边框的边和角之一时触发事件
- android - Android Studio 说我不在 gradle build 上,但我在
- scala - 我怎样才能让这个理解返回?
- javascript - 值不能从 ReadableNativeMap 转换为 double
- php - 在标签和 str_replace() 之间查找文本
- css - CSS - Visual Composer 覆盖样式未应用我在 Chrome 控制台中看到的内容
- c# - 使用 blazor 加载外部 .NET Standard 2.0 程序集