Tell me more ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

I have an app where I fetch data from server(json) in the form of array & by using the index i used in my app, like below.

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());

for small size array I can get like this. But when array contains 'n' no of elements and dynamically i have to use this, at that time it required to convert into String Array. Can anybody tell me how I convert the json array to String array ? Thank you

share|improve this question
you should accept correct answers to your questions if you've found them to be useful(See there is a tick there)and also use upvotes. It will help you get more answers. – Rishabh Jun 15 '11 at 11:41
possible duplicate of Convert Json Array to normal Java Array – Suma Jun 5 at 11:36

3 Answers

up vote 5 down vote accepted

This should help you.

Edit:

Maybe this is what you need:

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();
    }
}
share|improve this answer
Hiii,my question is different. Its for coverting objecty to string then string to json array. But I asked to convert json array to string array – Jyosna Jun 15 '11 at 10:39

This I think is what you searching for

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()); 
} 
share|improve this answer

I just did this yesterday! If you're willing to use a 3rd party library then you can use Google GSON, with the additional benefit of having more concise code.

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);
}

You can find more examples in the user guide.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.