Я получаю 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 String s, которое равно одному из значений. т.е. у меня есть строка "ACCPT", и мне нужно получить "Acceptance" из JSONObject.
Я сделал два JSONArrays с DISPLAY_VALUES и VALUES с помощью
JSONObject opoutput=shipmentcodes.getJSONObject("opOutput");
JSONArray event_values=opoutput.getJSONArray("DISPLAY_VALUES");
JSONArray event_codes=opoutput.getJSONArray("VALUES");
где коды пересылки - это оригинальный JSONObject, но я не уверен, как действовать дальше. Какие-нибудь советы?
Добавьте значения из JSONArray
в List
и используйте метод 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);
Затем вы можете использовать valueToDisplay
для отображения необходимого вам значения.