Как добавить массив строк в объект 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);
Что это.:)