Создание JSON в веб-службе RESTful (ПОЛУЧЕНИЕ WEIRD OUTPUT) [дубликат]

4
задан Prats 12 July 2013 в 06:56
поделиться

3 ответа

Ввести новый класс, как показано ниже

@XmlRootElement(name = "responseList")
public class ResposeList {

    private List<Object> list;

    public List<Object> getList() {
        return list;
    }

    public void setList(List<Object> list) {
        this.list = list;
    }

}

, и установить список ниже

@GET
@Path("/get")
@Produces(MediaType.APPLICATION_XML)
public ResposeList addObjects() {

    Book book = new Book(); 
    book.setName("Here is the Game");
    book.setAuthor("HHH");

    BookStore bookstore = new BookStore();
    bookstore.setName("Prateek Bookstore");
    bookstore.setLocation("Vasanth Nagar");

    ArrayList<Object> list = new ArrayList<Object>();
    list.add(book);
    list.add(bookstore);
    ResposeList books=new ResposeList();
    books.setList(list);

    return books;   
}
8
ответ дан Sanjaya Liyanage 31 August 2018 в 22:58
поделиться

Вам нужно обернуть свою сущность (Arraylist) под объектом Response. Также ваш метод возврата метода rest должен быть Response. Вот что вам нужно сделать:

@GET
@Path("/get")
@Produces(MediaType.APPLICATION_XML)
public Response addObjects() {

    Book book = new Book(); 
    book.setName("Here is the Game");
    book.setAuthor("HHH");

    BookStore bookstore = new BookStore();
    bookstore.setName("Prateek Bookstore");
    bookstore.setLocation("Vasanth Nagar");

    ArrayList<Object> list = new ArrayList<Object>();
    list.add(book);
    list.add(bookstore);

    return Response.status(200).entity(list).build();
}

Также добавьте @XmlElemen t поверх получателя в вашем компоненте ResponseList

@XmlRootElement
public class ResponseList {

private ArrayList<Object> list;

@XMLElement("booksList")
public ArrayList<Object> getList() {
    return list;
}

public void setList(ArrayList<Object> list) {
    this.list = list;
}   
}
2
ответ дан Juned Ahsan 31 August 2018 в 22:58
поделиться

Вы можете просто использовать JSONArray для отображения результата. Создайте объект JSONArray и передайте его в конструктор JSONArray (). Затем верните объект JSONArray в строковый формат. Измените возвращаемый тип вашего метода на String, и будет работать flollowing код.

Blockquote

JSONArray a = new JSONArray (list); return a.toString ();

0
ответ дан Shaun 31 August 2018 в 22:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: