У меня есть следующие JSON:Как Разобрать JSON, который содержит те же самые ключевые имена
[
{"hex":"3443d3", "squawk":"4673", "flight":"VLG3014 ","lat":37.716344, "lon":-2.913646, "validposition":1, "altitude":35000,"vert_rate":0,"track":225, "validtrack":1,"speed":427, "messages":74, "seen":0},
{"hex":"345313", "squawk":"3767", "flight":"VLG2422 ", "lat":37.573568, "lon":-2.912750, "validposition":1, "altitude":38000, "vert_rate":0,"track":72, "validtrack":1,"speed":420, "messages":1217, "seen":0}
]
Код является следующее:
@Override
protected String doInBackground(String... strings) {
try {
socket=new Socket("172.24.1.1",9000);
System.out.println("CONECTED");
} catch (IOException e) {
e.printStackTrace();
}
try {
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println("BufferedReader READY");
} catch (IOException e) {
e.printStackTrace();
}
int i=0;
while(i==0) {
try {
System.out.println("WAITING FOR MESSAGE");
inputString=br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
try {
if(inputString!=null) {
jsonString = new JSONObject(inputString);
System.out.println(parseJSON(jsonString)[0]);
}
} catch (JSONException e) {
//e.printStackTrace();
}
}
return null;
}
private String[] parseJSON(JSONObject jsonObject) throws JSONException {
String hex = jsonObject.getString("hex");
String squawk = jsonObject.getString("squawk");
String flight = jsonObject.getString("flight");
String lat = jsonObject.getString("lat");
String lon = jsonObject.getString("lon");
String validposition = jsonObject.getString("validposition");
String altitude = jsonObject.getString("altitude");
String vert_rate = jsonObject.getString("vert_rate");
String track= jsonObject.getString("track");
String validtrack = jsonObject.getString("validtrack");
String speed = jsonObject.getString("speed");
String messages = jsonObject.getString("messages");
String seen = jsonObject.getString("seen");
String[] answer={hex,squawk,flight,lat,lon,validposition,altitude,vert_rate,track,validtrack,speed,messages,seen};
return answer;
}
я получаю весь JSON в моем приложении. Когда я получаю «hex», я получаю код 345313. Я хочу иметь вектор «hex» с обоими значениями, мой вопрос: Как получить оба значения без использования для цикла? Есть ли какой-либо метод JSON для получения обоих одновременно и сохранения в массиве?
Что вы используете для разбора JSON? 'JSONArray'? 'JsonReader'? Gson? Джексон? Moshi? Что-то другое? – CommonsWare
Это JSONArray, затем вы получаете доступ к элементу 'array [iterator] .yourElement'. Например: 'array [0] .hex'. –
используйте Gson, перейдите по этой ссылке https://guides.codepath.com/android/Leveraging-the-Gson-Library –