0

そのため、データベースからデータを取得して、基本的に次のような JSON ファイルを作成しようとしています。my_json_object.put(); を使用できることを知っています。しかし、それは文字列、文字列でのみ機能するようです。私と私は 2 つのエントリで値を作成したいと考えており、2 番目のエントリは実際には多くの値の配列になります。どうすればそれを達成できますか?みんなありがとう。

{"value": {
"name": "History",
"values": [ 
{"front": "History Market", "back": " It is the world of the world that the world    could not say that", "color": "Yellow"},
{"front": "History Market", "back": " It is the world of the world that the world could not say that", "color": "Red"},
{"front": "History Market", "back": " It is the world of the world that the world could not say that", "color": "Purple"},
{"front": "History Market", "back": " It is the world of the world that the world could not say that", "color": "Blue"},
{"front": "History Market", "back": " It is the world of the world that the world could not say that", "color": "Blue"}
]}}
4

3 に答える 3

4

現在の jsonObject を次のように作成します。

//Create main json object
JSONObject json = new JSONObject();

//Create value json object
JSONObject valueJson = new JSONObject();

//Create values JSONArray
JSONArray valuesarray = new JSONArray();

for(int i=0;i<=4;i++){
 // Create values jsonObject
JSONObject valuesJson = new JSONObject();
valuesJson.put("front","front_value");
valuesJson.put("back","back_value");
valuesJson.put("color","color_value");
 // put values jsonObject to valuesarray JSONArray
valuesarray.put(valuesJson);    

}
 // put name key-value to value jsonObject
valueJson.put("name","History");
 // put values JSONArray to value jsonObject
valueJson.put("values",valuesarray);

 // put value jsonObject to final json Object
json.put("value",valueJson);
于 2013-01-26T20:03:52.963 に答える
2

google gsonを使用してください。これは非常にシンプルで、配列とリストで完全に機能します

public class CollectionToJson {
public static void main(String[] args) {
    //
    // Converts a collection of string object into JSON string.
    //
    List<String> names = new ArrayList<String>();
    names.add("Alice");
    names.add("Bob");
    names.add("Carol");
    names.add("Mallory");

    Gson gson = new Gson();
    String jsonNames = gson.toJson(names);
    System.out.println("jsonNames = " + jsonNames);

    //
    // Converts a collection Student object into JSON string
    //
    Student a = new Student("Alice", "Apple St",
            CollectionToJson.getDOB(2000, 10, 1));
    Student b = new Student("Bob", "Banana St", null);
    Student c = new Student("Carol", "Grape St",
            CollectionToJson.getDOB(2000, 5, 21));
    Student d = new Student("Mallory", "Mango St", null);

    List<Student> students = new ArrayList<Student>();
    students.add(a);
    students.add(b);
    students.add(c);
    students.add(d);

    gson = new Gson();
    String jsonStudents = gson.toJson(students);
    System.out.println("jsonStudents = " + jsonStudents);

    //
    // Converts JSON string into a collection of Student object.
    //
    Type type = new TypeToken<List<Student>>(){}.getType();
    List<Student> studentList = gson.fromJson(jsonStudents, type);

    for (Student student : studentList) {
        System.out.println("student.getName() = " + student.getName());
    }
}

private static Date getDOB(int year, int month, int date) {
    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.YEAR, year);
    calendar.set(Calendar.MONTH, month - 1);
    calendar.set(Calendar.DATE, date);
    calendar.set(Calendar.HOUR, 0);
    calendar.set(Calendar.MINUTE, 0);
    calendar.set(Calendar.SECOND, 0);
    return calendar.getTime();
}

}

出力

 jsonNames = ["Alice","Bob","Carol","Mallory"]
jsonStudents = [{"name":"Alice","address":"Apple St","dateOfBirth":"Nov 1, 3900 12:00:00 AM"},{"name":"Bob","address":"Banana St"},{"name":"Carol","address":"Grape St","dateOfBirth":"Jun 21, 3900 12:00:00 AM"},{"name":"Mallory","address":"Mango St"}]
student.getName() = Alice
student.getName() = Bob
student.getName() = Carol
student.getName() = Mallory
于 2013-01-26T20:08:27.890 に答える
0

JSONObject は JSONArray を内部にネストすることができ、その逆も可能です。

あなたの例では、作成する必要があります:

  • リスト項目
  • JSONObject
  • その中に「値」と呼ばれる JSONObject
  • その中には、文字列値「History」を持つ「name」という名前の文字列エントリがあります。
  • そして、JSONArray エントリ。
  • リスト項目
  • その JSONArray 内には、一連の JSONObjects があります。
于 2013-01-26T20:05:52.120 に答える