Java 在JSONArray中查找元素的索引
我从服务器收到一个JSONObject,如下所示:Java 在JSONArray中查找元素的索引,java,json,arrays,Java,Json,Arrays,我从服务器收到一个JSONObject,如下所示: { "opOutput":{ "DISPLAY_VALUES":[ "Acceptance", "Arrive Load Port", "Arrive Receipt Point", "Arrive Relay Port", "Arrive Terminal", "Arrived at Delivery Location
{
"opOutput":{
"DISPLAY_VALUES":[
"Acceptance",
"Arrive Load Port",
"Arrive Receipt Point",
"Arrive Relay Port",
"Arrive Terminal",
"Arrived at Delivery Location",
"Arrived at Pickup Location",
"Arrived Intermodal Train",
"At Customs",
.
.
.
.
],
"VALUES":[
"ACCPT",
"ALPT",
"ARRP",
"ARREL",
"ATRM",
"QARD",
"ARPUL",
"AIMTRN",
"K",
.
.
.
.
]
},
"_returnValue":{
"TX_TYPE":"SHIPMENT",
"__DeltaStatus":2,
"ORG_CODE":"GFM",
"TX_ID":"11019082"
},
"_returnType":"SUCCESS"
}
现在我需要得到s字符串s的显示值,该值等于其中一个值。
i、 e我有字符串“acpt”,我需要从JSONObject获取“acception”
我制作了两个JSONArray,其中包含DISPLAY_值和value
与
其中shipmentcodes是最初的JSONObject,但我不确定如何继续。有什么提示吗?将
JSONArray
中的值添加到列表中
,并使用indexOf
方法
JSONArray event_values = opoutput.getJSONArray("DISPLAY_VALUES");
JSONArray event_codes = opoutput.getJSONArray("VALUES");
List<String> valueList = new ArrayList<String>();
List<String> displayList = new ArrayList<String>();
for(int i=0;i<event_codes.length();i++){
// if both event_values and event_codes are of equal length
valueList.add(event_codes.getString(i));
displayList.add(event_values.getString(i));
}
int index = valueList.indexOf("ACCPT");
String valueToDisplay = displayList.get(index);
JSONArray事件值=opoutput.getJSONArray(“显示值”);
JSONArray事件_code=opoutput.getJSONArray(“值”);
List valueList=新的ArrayList();
List displayList=new ArrayList();
对于(int i=0;i将JSONArray
中的值添加到列表中,并使用indexOf
方法
JSONArray event_values = opoutput.getJSONArray("DISPLAY_VALUES");
JSONArray event_codes = opoutput.getJSONArray("VALUES");
List<String> valueList = new ArrayList<String>();
List<String> displayList = new ArrayList<String>();
for(int i=0;i<event_codes.length();i++){
// if both event_values and event_codes are of equal length
valueList.add(event_codes.getString(i));
displayList.add(event_values.getString(i));
}
int index = valueList.indexOf("ACCPT");
String valueToDisplay = displayList.get(index);
JSONArray事件值=opoutput.getJSONArray(“显示值”);
JSONArray事件_code=opoutput.getJSONArray(“值”);
List valueList=新的ArrayList();
List displayList=new ArrayList();
对于(int i=0;i为什么不能迭代JSONArray,计算索引,找到匹配项时停止?在for循环中迭代值数组,直到找到匹配项,然后使用该索引从display_值中获取正确的显示值。@bstar55是的,我想我可以这么做。我想可能有某种JSONArray方法可以返回给定元素的索引,而不经过循环。为什么不能迭代JSONArray,计算索引,找到匹配项时停止?在for循环中迭代值数组,直到找到匹配项,然后使用该索引从显示值中获取正确的显示值。@bstar55是的,我想我可以这样做。我想可能有一种JSONArray方法,可以返回给定元素的索引,而不必经过循环。我正在尝试解决一个类似的问题。可以看看这个问题吗?我正在尝试解决一个类似的问题,可以看看这个问题吗