2015-07-27 4 views
-3

Мне нужно отправить данные с помощью JSONArray, которая не доступна beore андроида уровня апи 19. Объект Json подобен -JSONArray не поддерживается, прежде Android API 19

myJob = {"data1":['a','b','c'], 
     "data2":[1,2,3] 
    } 

Что я должен использовать для предыдущих уровней API ?

+0

Что недоступно до уровня АИ 19? – Blackbelt

+4

org.json.JSONArray доступен с уровня API 1 (один). –

+0

[api ref link] (http://developer.android.com/reference/org/json/JSONArray.html) – Hacketo

ответ

1

Вы можете использовать Json Object и Json Array ниже API 19.

JSONObject data1 = new JSONObject(); 
data1.put("id", "2"); 
data1.put("name", "John"); 
JSONObject data2 = new JSONObject(); 
data2.put("id", "2"); 
data2.put("name", "John"); 

JSONArray jsonArray = new JSONArray();// this is Json Array 

jsonArray.put(data1); 
jsonArray.put(data2); 

Примечание: Это похоже на то, что вы не знаете Json. Пожалуйста, проверьте и оцените его с помощью онлайн-проверки json. http://json.parser.online.fr/

3

Я предполагаю, что MR. Гупта имели в виду ошибки компиляции, когда он пытается создать JSONArray таким образом:

JSONObject jsonObj = new JSONObject(jsonString); 
JSONArray jsonArray = new JSONArray(jsonObj.getJSONArray("results")); 

Android Студия дает эту подсказку:

вызовов требует уровень API 19 (текущий минимум < 19)

Вот один из правильных способов построить JSONArray:

JSONArray resultsJsonArr = moviesJsonObj.getJSONArray("results"); 
+1

Вы спасли мой день, чувак! – oskarko

0

JSONArra y = новый JSONArray (stringJsonArray); // не используется ниже api 19.

Чтобы использовать его, есть трюк.

String str = "[1,2,3,4]"; //example string. 

String json = "{\"data\":" + str + "}"; //this is trick. 

JSONObject obj = new JSONObject(json); 

JSONArray array = obj.getJSONArray("data"); 
Смежные вопросы