Как вы возвращаете объект JSON из сервлета Java - PullRequest
150 голосов
/ 06 января 2010

Как вы возвращаете объект JSON из сервлета Java.

Ранее при выполнении AJAX с сервлетом я возвращал строку. Существует ли тип объекта JSON, который необходимо использовать, или вы просто возвращаете строку, которая выглядит как объект JSON, например,

String objectToReturn = "{ key1: 'value1', key2: 'value2' }";

Ответы [ 12 ]

0 голосов
/ 22 июня 2019

Используя Gson, вы можете отправить ответ json, см. Код ниже

Вы можете увидеть этот код

@WebServlet(urlPatterns = {"/jsonResponse"})
public class JsonResponse extends HttpServlet {

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("application/json");
    response.setCharacterEncoding("utf-8");
    Student student = new Student(12, "Ram Kumar", "Male", "1234565678");
    Subject subject1 = new Subject(1, "Computer Fundamentals");
    Subject subject2 = new Subject(2, "Computer Graphics");
    Subject subject3 = new Subject(3, "Data Structures");
    Set subjects = new HashSet();
    subjects.add(subject1);
    subjects.add(subject2);
    subjects.add(subject3);
    student.setSubjects(subjects);
    Address address = new Address(1, "Street 23 NN West ", "Bhilai", "Chhattisgarh", "India");
    student.setAddress(address);
    Gson gson = new Gson();
    String jsonData = gson.toJson(student);
    PrintWriter out = response.getWriter();
    try {
        out.println(jsonData);
    } finally {
        out.close();
    }

  }
}

полезно от json ответ сервлета в java

0 голосов
/ 31 августа 2016

Близко к BalusC ответ в 4 простых строки, используя Google Gson lib Добавьте эти строки в метод сервлета:

User objToSerialize = new User("Bill", "Gates");    
ServletOutputStream outputStream = response.getOutputStream();

response.setContentType("application/json;charset=UTF-8");
outputStream.print(new Gson().toJson(objToSerialize));

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...