Java 在JSONArray中查找元素的索引

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

我从服务器收到一个JSONObject,如下所示:

{
   "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方法,可以返回给定元素的索引,而不必经过循环。我正在尝试解决一个类似的问题。可以看看这个问题吗?我正在尝试解决一个类似的问题,可以看看这个问题吗