2017-09-04 12 views
-3

私はjavaでjson文字列を作成しようとしていますが、私はそれについてどうやってどうやってやるべきか混乱しています。これはこれまで私が試したことです。JavaでJson Stringをビルドするには?

String jsonString = new JSONObject() 
        .put("JSON1", "Hello World!") 
        .put("JSON2", "Hello my World!") 
        .put("JSON3", new JSONObject() 
         .put("key1", "value1")).toString(); 

System.out.println(jsonString); 

出力は次のように私はしたい

{"JSON2":"Hello my World!","JSON3":{"key1":"value1"},"JSON1":"Hello World!"} 

JSONがある: - 私はそれについてどのように

{ 
"data":{ 
    "nightclub":["abcbc","ahdjdjd","djjdjdd"], 
    "restaurants":["fjjfjf","kfkfkfk","fjfjjfjf"], 


    "response":"sucess" 
} 
} 

に行くべきですか?

+0

。 –

+0

必要なものと同様のJSON出力を生成するには、少なくとも少し努力する必要があります。今のところ、*これは私がこれまでに試したことですが、コピーされたHello Worldの例です。実際には何も試していません。 – hyde

+0

また、いいフォーマットを得る方法を尋ねているのか、入れ子になっているオブジェクトや配列を 'JSONObject'に入れるのかを尋ねているのかどうかは不明です。どうか明らかにしてください。 – hyde

答えて

2

これらのjsonアレイをマップするには、JSONArrayJsonArrayBuilderを使用する必要があります。

これは、あなたが使用する必要があるコードです:

String jsonString = new JSONObject() 
     .put("data", new JSONObject() 
      .put("nightclub", Json.createArrayBuilder() 
        .add("abcbc") 
        .add("ahdjdjdj") 
        .add("djdjdj").build()) 
      .put("restaurants", Json.createArrayBuilder() 
        .add("abcbc") 
        .add("ahdjdjdj") 
        .add("djdjdj").build()) 
      .put("response", "success")) 
        .toString(); 
0

あなたはgsonのlibを使用することができます。

public class JsonReponse { 

private Data data; 

public Data getData() { 
    return data; 
} 

public void setData(Data data) { 
    this.data = data; 
} 

public class Data { 

    private String reponse; 
    private List<String> nightclub; 
    private List<String> restaurants; 

    public String getReponse() { 
     return reponse; 
    } 

    public void setReponse(String reponse) { 
     this.reponse = reponse; 
    } 

    public List<String> getNightclub() { 
     return nightclub; 
    } 

    public void setNightclub(List<String> nightclub) { 
     this.nightclub = nightclub; 
    } 

    public List<String> getRestaurants() { 
     return restaurants; 
    } 

    public void setRestaurants(List<String> restaurants) { 
     this.restaurants = restaurants; 
    } 
} 

}

と、次compliteデータをとJSONを生成します:

まずPOJOオブジェクトを作成するには、代わりにJSONObjectのJSONArrayを使用することができますリストでは

JsonReponse jsonReponse = new JsonReponse(); 
    JsonReponse.Data data = jsonReponse.new Data(); 
    data.setReponse("sucess"); 
    data.setNightclub(Arrays.asList("abcbc","ahdjdjd","djjdjdd")); 
    data.setRestaurants(Arrays.asList("fjjfjf","kfkfkfk","fjfjjfjf")); 
    jsonReponse.setData(data); 

    Gson gson = new Gson(); 
    System.out.println(gson.toJson(jsonReponse)); 
関連する問題