Как добавить массив строк в объект JSON?

Я пытаюсь создать этот объект JSON на android. Я зациклился на том, как добавить в объект строковый массив.

A = {
    "class" : "4" ,
    "name" : ["john", "mat", "jason", "matthew"]
    }

Это код, который я написал:

import org.json.JSONObject;

JSONObject school = new JSONObject();

school.put("class","4");
school.put("name", ["john", "mat", "jason", "matthew"] );

Но последняя строка дает ошибку. Любой путь мимо этого?

Ответы

Ответ 1

Небольшой неправильный подход, предложенный Томом. Оптимизированный код:

ArrayList<String> list = new ArrayList<String>();
list.add("john");
list.add("mat");
list.add("jason");
list.add("matthew");

JSONObject school = new JSONObject();

school.put("class","4");
school.put("name", new JSONArray(list));

Ответ 2

Вы получаете сообщение об ошибке, потому что последняя строка недействительна для Java.

school.put("name", new JSONArray("[\"john\", \"mat\", \"jason\", \"matthew\"]"));

Ответ 3

Из-за этого вы получаете ошибку.

school.put("name", ["john", "mat", "jason", "matthew"] );
                   ^                                 ^   

Сделайте так.

school.put("name", new JSONArray("[\"john\", \"mat\", \"jason\", \"matthew\"]"));

Ответ 4

@bhavindesai's, ответ - отличный ответ. Вот еще один способ решить эту проблему. Вы можете просто сделать это с помощью библиотеки Json Simple. Вот gradle

compile 'com.googlecode.json-simple:json-simple:1.1'

Вот пример кода:

org.json.simple.JSONObject jsonObject=new org.json.simple.JSONObject();
jsonObject.put("Object","String Object");

ArrayList<String> list = new ArrayList<String>();
            list.add("john");
            list.add("mat");
            list.add("jason");
            list.add("matthew");

            jsonObject.put("List",list);

Что это.:)