2017-10-08 46 views
-2

我正在使用java,MySQ,Jersey和Gson創建一個RESTful Web服務。它的工作原理,但我唯一的問題是,當我在服務器上運行它並轉到我的項目的本地主機站點JSON都在一行。我在Gson中創建的My Json出現在單行中,當我在Web中查看它時

這是Web上JSON的輸出。

"[\n{\n\"id\":5,\n\"subject\":\"Math\",\n\"subjectAcronym\":\"MT\",\n\"classNumber\":2550,\n\"className\":\"Linear Algebra\",\n\"unit\": 3,\n\"prerequisite\":true,\n\"corequisite\":false\n}\n]" 

這是代碼中的類。

@GET 
@Path("/Classes") 
@Produces("application/json") 
public String feed() { 
    String feeds = null; 
    try { 
     ArrayList<ClassList> feedData = null; 
     ClassManager projectManager = new ClassManager(); 
     feedData = projectManager.GetFeeds(); 
     Gson gson = new GsonBuilder().setPrettyPrinting().create(); 
     System.out.println(gson.toJson(feedData)); 
     feeds = gson.toJson(feedData); 
    } 

    catch (Exception e) { 
     System.out.println("Exception Error"); // Console 
    } 
    return feeds; 
} 

代碼中的GsonBuilder().setPrettyPrinting()以我希望它在Web上打印的方式打印出來。

eclipse控制檯中的輸出。

[  
    { 
    "id": 5, 
    "subject": "Math", 
    "subjectAcronym": "MT", 
    "classNumber": 2550, 
    "className": "Linear Algebra", 
    "unit": 3, 
    "prerequisite": true, 
    "corequisite": false 
    } 
] 

我有2個類似於這個類的所有類都顯示在網上(在一行中)。如何在Web上顯示像控制檯中的輸出?任何迴應都很有幫助。謝謝。

+0

你是什麼意思「在網上」?你發佈的json包含換行符。只需查看一下正確顯示格式的內容即可。 – azurefrog

+0

當我在apache服務器上運行它時,我轉到了url:http:// localhost:8080/RESTfulProject/REST/WebService/Classes輸出顯示在一行中。 –

+0

它來自哪裏並不重要,它關乎你如何看待它。如果您不喜歡現在正在使用的格式,請使用其他格式。 – azurefrog

回答

1

這是因爲您的JSON是一個字符串,因爲您將GsonBuilder設置爲漂亮的打印格式,從而增加了換行符和格式等。你想寫沒有格式的JSON,所以它是JSON而不是一個字符串。如果你願意,你也可以打印。我相信這將解決您的問題:

@GET 
@Path("/Classes") 
@Produces("application/json") 
public String feed() { 
    String feeds = null; 
    try { 
     ArrayList<ClassList> feedData = null; 
     ClassManager projectManager = new ClassManager(); 
     feedData = projectManager.GetFeeds(); 
     Gson gson_pretty = new GsonBuilder().setPrettyPrinting().create(); 
     Gson gson = new Gson(); 
     System.out.println(gson_pretty.toJson(feedData)); 
     feeds = gson.toJson(feedData); 
    } 

    catch (Exception e) { 
     System.out.println("Exception Error"); // Console 
    } 
    return feeds; 
} 

請注意,在谷歌瀏覽器中,JSON表示在一行上。 Here是改變這一點的擴展。 Firefox默認顯示JSON,如下所示:

Pretty JSON

+0

很高興爲您服務!然後,請將答案標記爲已接受。這是答案下的投票按鈕下的複選標記。 – Steampunkery

相關問題