2017-05-18 17 views
0

は、誰かが私にJSONオブジェクトを作成するためのJavaコードを提供することができます私がループしていてもJavaでJSONデータオブジェクトを作成

{"main":["one","two","three","four","five"]} 

は単一のオブジェクトのようです。しかし、私は結果を期待しています

{"main":[ 
     ["one","two","three","four","five"], 
     ["one","two","three","four","five"], 
     ["one","two","three","four","five"], 
     ["one","two","three","four","five"], 
     ["one","two","three","four","five"] 
]} 

多くのありがとうございます。

答えて

0

とてもあなたがしなければならないだろうすべては別の新しい配列にごarray 5回を追加します(例:mainArrayそれを呼び出す)してからjsonObjectmainArrayを追加され、"main"は、配列の配列が含まれて表示されます。

  • 新しい空の配列を作成します。mainArray
  • mainArray
  • array 5回を追加しmainArrayからjsonObject
0

あなたはJsonObjectにあなたのJSONデータを表す文字列を変換しようとすることができます:

import com.google.gson.JsonObject; 
import com.google.gson.JsonParser; 


public class JsonQuestion { 

    public static void main(String[] args) { 

     String myJSON = "{\"main\":[\n" 
       + " [\"one\",\"two\",\"three\",\"four\",\"five\"],\n" 
       + " [\"one\",\"two\",\"three\",\"four\",\"five\"],\n" 
       + " [\"one\",\"two\",\"three\",\"four\",\"five\"],\n" 
       + " [\"one\",\"two\",\"three\",\"four\",\"five\"],\n" 
       + " [\"one\",\"two\",\"three\",\"four\",\"five\"]\n" 
       + "]}"; 

     JsonParser jsonParser = new JsonParser(); 
     JsonObject jsonObject = (JsonObject) jsonParser.parse(myJSON); 
     System.out.println("jsonObject: " + jsonObject.toString()); 

    } 
} 
1

は、JSONあなたはJSONを作るための方法の下に使用することができます

Gson gson = new Gson(); 
JsonArray array = new JsonArray(); 
JsonArray child = new JsonArray(); 

child.add(new JsonPrimitive("One")); 
child.add(new JsonPrimitive("two")); 
child.add(new JsonPrimitive("three")); 
child.add(new JsonPrimitive("four")); 
child.add(new JsonPrimitive("five")); 

for(int i=0;i<5;i++) 
array.add(child); 


JsonObject jsonObject = new JsonObject(); 
jsonObject.add("main", array); 

System.out.println(jsonObject); 
0
Gson gson = new Gson(); 
    JsonArray array = new JsonArray(); 

    array.add(new JsonPrimitive("One")); 
    array.add(new JsonPrimitive("two")); 
    array.add(new JsonPrimitive("three")); 
    array.add(new JsonPrimitive("four")); 
    array.add(new JsonPrimitive("five")); 

    JsonObject jsonObject = new JsonObject(); 

    JsonArray marray = new JsonArray(); 
    marray.add(array); 
    marray.add(array); 
    marray.add(array); 
    marray.add(array); 
    marray.add(array); 
    jsonObject.add("main", marray); 
0

を作成するには、このコードを試してみてください。

private void createJsonData(){ 
     final String[] units = {"One","Two","Three","Four", 
       "Five"}; 
     try { 
     JSONObject jsonObject = new JSONObject(); 
     JSONArray jsonArray = new JSONArray(); 

      JSONArray jsonArray1 = new JSONArray(); 
      for (int j = 0; j < 5 ; j++) { 
       jsonArray1.put(units[j]) 
      } 
      jsonArray.put(jsonArray); 

      jsonObject.put("main",jsonArray); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
    } 
1

あなたがGsonを使用していると仮定すると、それが使用されるように設計された方法ではありません。この方法はサポートされていますが、これを行うためにjsonライブラリを使用することはできません(SimpleJson)。

代わりに、Gsonはよく知っているJavaオブジェクトを直接シリアル化できます。したがって、jsonオブジェクトをJavaオブジェクトとして表す必要があります。 JsonObjectはマップにマップされます。 JsonArrayはListまたは配列にマップされます。 JsonPrimitivesはそれぞれのJavaプリミティブ型(boolean、double、string、null)にマップされます

// generate the object 
Map<List<List<String>>> object = new HashMap<>(); 
List<List<String>> main = new ArrayList<>(); 
List<String> counts = Arrays.asList("one", "two", "three", "four", "five"); 
for (int i = 0; i < 5; i++) { 
    main.add(counts); 
} 
object.put("main", main); 

// serialize it 
String json = new Gson().toJson(object); 

// deserializing it requires a typetoken or separate class representing the map object. 
Map<List<List<String>>> desObj = new Gson().fromJson(json, new TypeToken<Map<List<List<String>>>>(){}.getType()); 
関連する問題