Android, как конвертировать массив JSON в массив строк - PullRequest
8 голосов
/ 15 июня 2011

У меня есть приложение, в котором я получаю данные с сервера (json) в виде массива и используя индекс, который я использовал в своем приложении, как показано ниже.

JSONObject topobj = new JSONObject(page);
JSONObject innerobj = topobj.getJSONObject("restarutant");
JSONArray phone = innerobj.getJSONArray("phone");
textViewPhone.setText("Phone: " + phone.get(0).toString() + " ,"
                    + phone.get(1).toString());

для массива небольшого размера, который я могуполучить как это.Но когда массив не содержит n элементов и динамически я должен использовать это, в то время он требовал преобразования в String Array.Кто-нибудь может сказать мне, как я преобразую массив JSON в массив строк?Спасибо

Ответы [ 4 ]

22 голосов
/ 15 июня 2011

Это должно помочь вам.

Редактировать:

Может быть, это то, что вам нужно:

ArrayList<String> stringArray = new ArrayList<String>();
JSONArray jsonArray = new JSONArray();
for(int i = 0, count = jsonArray.length(); i< count; i++)
{
    try {
        JSONObject jsonObject = jsonArray.getJSONObject(i);
        stringArray.add(jsonObject.toString());
    }
    catch (JSONException e) {
        e.printStackTrace();
    }
}
5 голосов
/ 16 июля 2014

Предположим, что у вас уже есть JSONArray jsonArray:

String[] stringArray = new stringArray[jsonArray.length];
for(int i = 0, count = jsonArray.length(); i< count; i++)
{
    try {
        String jsonString = jsonArray.getString(i);
        stringArray[i] = jsonString.toString();
    }
    catch (JSONException e) {
        e.printStackTrace();
    }
}
5 голосов
/ 15 июня 2011

Я думаю, это то, что вы ищете

ArrayList<String> list = new ArrayList<String>();     
JSONArray jsonArray = (JSONArray)jsonObject; 
if (jsonArray != null) { 
   for (int i=0;i<jsonArray.length();i++){ 
    list.add(jsonArray.get(i).toString()); 
} 
2 голосов
/ 15 июня 2011

Я только что сделал это вчера!Если вы хотите использовать стороннюю библиотеку, вы можете использовать Google GSON , с дополнительным преимуществом более краткого кода.

String json = jsonArray.toString();
Type collectionType = new TypeToken<Collection<String>>(){}.getType();
Collection<String> strings = gson.fromJson(json, collectionType);

for (String element : strings)
{
    Log.d("TAG", "I'm doing stuff with: " + element);
}

Дополнительные примеры можно найти в руководство пользователя .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...