2017-10-08 1 views
-2

Java、MySQ、Jersey、およびGsonを使用してRESTful Webサービスを作成しています。それは動作しますが、私の唯一の問題は、サーバー上でそれを実行し、私のプロジェクトのlocalhostサイトに移動するときにJSONがすべて1行になることです。Gsonで作成したMy Jsonは、Webで見ると1行で表示されます

これは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()はコンソールで、私はそれがウェブでプリントアウトしたい方法を出力します。

eclipseのコンソールに出力します。

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

私はこれに似た2つのクラスを持ち、すべて同じものをウェブ上に(1行で)表示します。どのようにコンソール上の出力のようにWeb上で表示することができますか?どんな応答も役に立ちます。ありがとうございました。

+0

は、あなたが「ウェブ上で」何を意味するのですか?投稿したjsonに改行が含まれています。書式を適切に表示するもので表示してください。 – azurefrog

+0

私はApacheサーバー上で実行します。私はURLに行きます:http:// localhost:8080/RESTfulProject/REST/WebService/Classes出力は1行で表示されます。 –

+0

どこから来ても問題ありません。あなたの見方は重要です。あなたが現在使用しているものによってフォーマットされている方法が気に入らない場合は、別のものを使用してください。 – azurefrog

答えて

1

GsonBuilderをきれいに印刷して改行や書式などを追加するため、JSONが文字列であるためです。書式設定なしで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; 
} 

Google Chromeでは、JSONは1行に表示されます。 Hereはそれを変更する拡張機能です。 Firefoxはこのように、デフォルトでJSONを表示します。

Pretty JSON

+0

助けになるのはうれしい!答えを受け入れたものとしてマークしてください。この回答の投票ボタンの下にあるチェックマークです。 – Steampunkery

関連する問題