簡體   English   中英

將ArrayList的內容顯示為Java Jersey REST API的正確格式的JSON

[英]Displaying contents of ArrayList into properly formatted JSON for Java Jersey REST API

我正在構建一個Restful API,它將以JSON格式發送響應。 我要發送的數據在arrayList中。 執行此操作的簡單方法似乎是將arrayList轉換為JSON,因為它具有內置的toJSONString(),但是該調用將其轉換為帶有很多正斜杠的JSON強,例如:{\\“ value1 \\”: 95,\\“ value2 \\”:\\“ 275 \\”}。 我想將其轉換為適合REST API的普通JSON字符串,例如:{“ value1”:“ 30”,“ value2”,“ 65”}。 有沒有辦法做到這一點?

您只需要在返回ArrayList的方法上方使用注釋'@Produces(MediaType.APPLICATION_JSON)'。

例如:

假設我們有一個Model類'Message':文件名:Message.java

import java.util.Date;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Message {

    private long id;
    private String message;
    private Date created;
    private String author;

    public Message(){

    }

    public Message(long id, String message, String author){
        this.id = id;
        this.message = message;
        this.author = author;
        this.created = new Date();
    }

    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
    public Date getCreated() {
        return created;
    }
    public void setCreated(Date created) {
        this.created = created;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }

}

然后我們有一個MessageService:FileName:MessageService.java

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class MessageService {

    private Map<Long, Message> messages;

    public MessageService(){
        messages.put(1L, new Message(1, "Hello Stackoverflow", "Kevin"));
        messages.put(2L, new Message(2, "Hello Jersey", "Kevin"));
    }

    public List<Message> getAllMessages(){
        return new ArrayList<Message>(messages.values());
    }
}

最后,您將獲得一個資源文件,其中實際上包含返回ArrayList的方法:文件名:MessageResource.java

@Path("/messages")
public class MessageResource {

    MessageService messageService = new MessageService();
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public List<Message> getMessages(){

        return messageService.getAllMessages();
        //This method will return your ArrayList as JSON.
    }
}

然后只需從URL調用MessageResource類:

http:// localhost:8080 / kevinswebapi / messages

注意:localhost:8080 / kevinswebapi是您的根路徑

我希望這有幫助...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM