2017-10-08 44 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

相关问题