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

Я пытаюсь получить доступ к данным, которые я передал из массива Javascript, в сервлет Java и обратно в Javascript, но получаю "undefined".

Ниже приведен мой код Javascript:

var buildingNo = [];
// Assuming the buildingNo's values are the following:
buildingNo = 12345, 54321;

$.ajax ({
   url: env + "/webaapp/myTestWeb/myTestEarFile",
   timeout:0,
   cache: false,
   data: {postalCode: postalCode, buildingNo: JSON.stringify(buildingNo)},
   success:function(data){
   alert(data); 
   //The output of this data is below: 
   //[{"status":"A";"buildingNo":"[\12345\",\"54321\"]"}]

   var jsonParse = JSON.parse(data);
   alert(jsonParse.status); // This gives out undefined.
   }
});

Вот фрагмент кода Java Servlet:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String postalCode = request.getParameter("postalCode");
String buildingNo = request.getParameter("buildingNo");

String status = "A";

JSONObject jsonObj = new JSONObject();
JSONArray jArray = new JSONArray();

jsonObj.put("status",status);
jsonObj.put("buildingNo",buildingNo);

jArray.add(jsonObj);

response.getWriter().write(jArray.toString());
}

Как мне получить значение статуса, строя отдельно для использования в Javascript?

1 Ответ

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

Обрезая все ошибки кода в вопросе, JSON, возвращаемый сервлетом, очень вероятно будет правильным.В противном случае JSON.parse() выдаст ошибку, и вы не получите неопределенное значение при выводе jsonParse.status.

Тогда реальная проблема заключается в том, что ваш сервлет отправляет вам массив, поэтому вам нужно обработать егокак один:

const jsonParse = [{"status":"A","buildingNo":"[\"12345\",\"54321\"]"}];

console.log(jsonParse[0].status); // "A"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...