Как получить доступ к нескольким спискам JSON в Javascript - PullRequest
0 голосов
/ 22 октября 2018

У меня есть сервлет Java, который выполняет следующие действия:

JSONObject jsonObject = new JSONObject();
JSONArray jsonArray = new JSONArray();
jsonObject.put("Status", status);
jsonObject.put("isActive", isActive);

jsonArray.add(jsonObject);
response.getWriter().write(jsonArray.toString());

//Now I have for loops here.

JSONArray jsonArray2 = new JSONArray();
for(int i=0;i<list.size();i++){
DTO dtost = list.get(i);
 JSONObject jsonObj = new JSONObject();
jsonObj.put("Label",dtost.getLabel());
jsonObj.put("UNID",dtost.getUNID());

jsonArray2.add(jsonObj); 
}

response.getWriter().write(jsonArray2.toString());

Я получаю эти данные JSON и хотел бы знать, как сделать этот формат правильным JSON, и получить доступ к значениям внутри, используяJavascript.

[{"Status":"Passed","isActive":"No"}] [{"Label":"MembershipCard","UNID":"01"},{"Label":"LoyaltyCard","UNID":"02"}]

Я пробую следующий фрагмент кода Javascript, но не получаю никакого.

success: function(data) {

  alert(data[0].Status); // Nothing
}

Спасибо.

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Реструктурируйте свой Java-код, чтобы создать действительный объект JSON.{"first":[{"Status":"Passed","isActive":"No"}],"second":[{"Label":"MembershipCard","UNID":"01"},{"Label":"LoyaltyCard","UNID":"02"}]}

JSONObject output= new JSONObject();
JSONObject jsonObject = new JSONObject();
JSONArray jsonArray = new JSONArray();
jsonObject.put("Status", status);
jsonObject.put("isActive", isActive);

jsonArray.add(jsonObject);
output.put("first", jsonArray);

//Now I have for loops here.

JSONArray jsonArray2 = new JSONArray();
for(int i=0;i<list.size();i++){
DTO dtost = list.get(i);
 JSONObject jsonObj = new JSONObject();
jsonObj.put("Label",dtost.getLabel());
jsonObj.put("UNID",dtost.getUNID());

jsonArray2.add(jsonObj); 
}
output.put("second", jsonArray2);
response.getWriter().write(output.toString());
0 голосов
/ 22 октября 2018

Вышеупомянутое является недействительным JSON.Однако, если мы изменим JSON на этот " [[{" Status ":" Passed "," isActive ":" No "}], [{" Label ":" MembershipCard "," UNID ":" 01 "}, {"Label": "LoyaltyCard", "UNID": "02"}]]"тогда это действительный JSON.

Таким образом, для доступа к параметру Status вышеприведенных данных что-то вроде этого: -

success: function(data){<br> alert(data[0][0].Status);<br> }

...