2014-02-11 2 views

ответ

5

Решением, которое приходит на ум будет перебирать и просто захватить значения

String[] stringArray = new String[jsonArray.length()]; 
for (int i = 0; i < jsonArray.length(); i++) { 
    stringArray[i]= jsonArray.getJSONObject(i).getString("route"); 
} 
+0

Спасибо большое @nyx. ваш ответ мне очень помог. –

0

Вслед за этим TUTORIAL

JSONArray arr = new JSONArray(yourJSONresponse); 
List<String> list = new ArrayList<String>(); 
for(i = 0; i < arr.length; i++){ 
    list.add(arr.getJSONObject(i).getString("name")); 
} 

Или используйте GSON

Gson gson = new Gson(); 
    Collection<Integer> ints = Lists.immutableList(1,2,3,4,5); 

//(Serialization) 
String json = gson.toJson(ints); ==> json is [1,2,3,4,5] 

//(Deserialization) 
Type collectionType = new TypeToken<Collection<Integer>>(){}.getType(); 
Collection<Integer> ints2 = gson.fromJson(json, collectionType); 
//ints2 is same as ints 
0

Вы можете попробовать ниже решений,

Просто замените {и}, следуя код

String jsonString = jsonArray.toString(); 
jsonString.replace("},{", " ,"); 
String[]array = jsonString.split(" "); 

Или

JSONArray arr = new JSONArray(yourJSONresponse); 
List<String> list = new ArrayList<String>(); 
for(i = 0; i < arr.length; i++){ 
    list.add(arr.getJSONObject(i).getString("name")); 
} 

это будет конвертировать в ArrayList, а затем, если вы хотите, чтобы натянуть затем преобразовать его в StringArray. для получения дополнительного справочного использования этого link

0

, как прямо вперед, как это может быть

List<String> list = new ArrayList<String>(); 
for(int ix = 0; ix < yourArray.length(); ix++){ 
    list.add(yourArray.getJSONObject(ix).getString("route")); 
} 
return list.toArray(new String[]); 
2

Попробуйте это

JSONArray jsonArray = null; 
    try { 
     jsonArray = new JSONArray(responseString); 

     if (jsonArray != null) { 

      String[] strArray = new String[jsonArray.length()]; 

      for (int i = 0; i < jsonArray.length(); i++) { 
       strArray[i] = jsonArray.getJSONObject(i).getString("route"); 
      } 
     } 
    } catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
0
// try this way here i gave with demo code 
public class MyActivity extends Activity { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     try{ 
      JSONArray jsonArray = new JSONArray(); 
      JSONObject jsonObject1 = new JSONObject(); 
      jsonObject1.put("route","route1"); 
      jsonArray.put(jsonObject1); 
      JSONObject jsonObject2 = new JSONObject(); 
      jsonObject2.put("route","route2"); 
      jsonArray.put(jsonObject2); 
      JSONObject jsonObject3 = new JSONObject(); 
      jsonObject3.put("route","route3"); 
      jsonArray.put(jsonObject3); 

      String[] array = jsonArrayToArray(jsonArray); 

      for (int i=0;i<array.length;i++){ 
       Log.i((i+1)+" Route : ",array[i]); 
      } 
     }catch (Exception e){ 
      e.printStackTrace(); 
     } 

    } 

    @SuppressWarnings({ "rawtypes", "unchecked" }) 
    public String jsonToStrings(JSONObject object) throws JSONException { 
     String data =""; 
     Iterator keys = object.keys(); 
     while (keys.hasNext()) { 
      String key = (String) keys.next(); 
      data+=fromJson(object.get(key)).toString()+","; 
     } 
     return data; 
    } 


    private Object fromJson(Object json) throws JSONException { 
     if (json == JSONObject.NULL) { 
      return null; 
     } else if (json instanceof JSONObject) { 
      return jsonToStrings((JSONObject) json); 
     } else if (json instanceof JSONArray) { 
      return jsonArrayToArray((JSONArray) json); 
     } else { 
      return json; 
     } 
    } 

    private String[] jsonArrayToArray(JSONArray array) throws JSONException { 
     ArrayList<Object> list = new ArrayList<Object>(); 
     int size = array.length(); 
     for (int i = 0; i < size; i++) { 
      list.add(fromJson(array.get(i))); 
     } 
     ArrayList<String> arrayList = new ArrayList<String>(); 
     for (int i=0;i<list.size();i++){ 
      String[] row = ((String)((String)list.get(i)).subSequence(0,((String)list.get(i)).length()-1)).split(","); 
      for (int j=0;j<row.length;j++){ 
       arrayList.add(row[j]); 
      } 
     } 
     String[] strings = new String[arrayList.size()]; 
     for (int k=0;k<strings.length;k++){ 
      strings[k]=arrayList.get(k); 
     } 

     return strings; 
    } 

} 
Смежные вопросы