2017-03-08 5 views
0

私はこのようなJSON出力に何かを与えるJavaの春のREST APIに取り組んでいますフォーマットします:はどのように春REST JSON出力

{ 
    "speed1mbps": null, 
    "speed10mbps": null, 
    "speed100mbps": null, 
    "speed1000mbps": null, 
    "phone": null, 
    "NAME": "some name", 
    "STREET": "ST address", 
    "city": "somecity", 
    "state": "some state", 
    "zip": "232409", 
} 

を私は以下のようにフォーマットされたJSON出力を必要としています。

{ 
    speed:[ 
     1mbps:null 
     10mbps:null 
     100mbps:null 
     1000mbps:null 
     1000mbps:null 
    ], 
    "phone": null, 
    "NAME": "some name", 
    "STREET": "ST address", 
    "city": "somecity", 
    "state": "some state", 
    "zip": "232409", 
} 

JSONをフォーマットすることはできますか? JSONのフォーマット方法を教えてください。

+1

あなたが望むのは有効なJSONではありません。 –

+0

また、この質問から3マイル以内にJavaの兆候はありません。私はそのタグを削除しています。 –

答えて

0

あなたが欲しいとJSONをフォーマットしたい場合は、pleseはたとえば下記参照、カスタムDTOを作成する必要があります。

class Dto { 
    private Map<String, String> speeds; 
    private String phone; 
    private String name; 
    private String street; 
    private String city; 
    private String state; 
    private String zip; 
} 

次にあなたが

speeds.put("1mbps", null); 
speeds.put("10mbps", null); 
speeds.put("100mbps", null); 
speeds.put("1000mbps", null); 
...のような速度でエントリを追加することができます

そして、有効なJSONの結果はとなります....

{ 
    speeds:{ 
     1mbps:null, 
     10mbps:null, 
     100mbps:null, 
     1000mbps:null, 
     1000mbps:null 
    }, 
    "phone": null, 
    "NAME": "some name", 
    "STREET": "ST address", 
    "city": "somecity", 
    "state": "some state", 
    "zip": "232409", 
} 

これは、あなたのREST応答に戻るべきクラスです。

+0

ありがとう、カスタムDTOを追加する意味がありましたが、Hibernateを使用しているときにどのようにフィールドをマップするのですか?そうですね、速度を別々のDTOに入れ、speeds.put( "1mbps"、sppeds.get1mbps());このようなもの? – Raj

+0

1mpbs、10mbpsなどのプロパティを持つエンティティ(SPPEDS)を持っている場合は、そのエンティティをhibernateを使用してdbテーブルにマップしてから、そのエンティティの情報を取得したらdto.getSpeeds()。put( "1mbps"、sppeds.get1mbps())などを入力し、dtoを応答として返します。 – imprezzeb

+0

私は変更を加えましたそれはうまく見えますが、速度マップをハイバネートでマップすることができないために失敗しています。タイプを決定できないというエラーがスローされています:Map、at table so、どうすればこの問題を回避できますか? – Raj

関連する問題