簡體   English   中英

將JSONObject轉換為String數組

[英]Convert JSONObject into String array

我正在收到像這樣的JSONObject

{"tag":"value1", "tag":"value2", .............}

我如何將它變成一個String數組

["value1", "value2"]

創建Arraylist並從jsonobject獲取字符串並將其存儲在arraylist中。

這樣做

ArrayList tagarray=new ArrayList();
JSONObject jo=new JSONObject(jsonstring);
for(int i=0;i<jo.length();i++){
tagarray.add(jo.getString("tag"));

  }

試試這種方式

JSONObject obj = new JSONObject("");
        Iterator<String> itr = obj.keys();
        int i=0;
        String[] values = new String[obj.length()];
        while(itr.hasNext()){
            values[i++] = obj.getString((String)itr.next());
        }

如果標簽將是tag1,tag2等等......你可以使用for循環,

string[i] = jsonObj.getString("tag"+i);  

或者,您可以創建一個數據類型為String或ArrayList標記的模型類,例如。

class ModelClass{

ArrayList<String> tag; 

//getter setter here
}

並使用Gson進行JSON解析和映射數據,

Gson gson = new Gson();

modelClass= gson.fromJson(yourJson,ModelClass.class);

你的工作已經完成。 您擁有ArrayList標記中的每個值。

這對於解析和映射長和復雜的json字符串更有用。

https://code.google.com/p/google-gson/

對於命名差異(根據webservice中的變量),可以使用@SerializedName等注釋。 (所以不需要使用Serializable)

使用以下代碼。

ArrayList array=new ArrayList();
JSONObject jo=new JSONObject(jsonstring);
for(int i=0;i<jo.length();i++){
  array.add(jo.getString("tag"));
}
String[] Arr = new String[array.size()];
    Arr = array.toArray(Arr);

或者你有另一種選擇。

 JSONObject jo=new JSONObject(jsonstring);
    String[] array = new String[jo.length()];
    for(int i=0;i<jo.length();i++){
      array[i] = jo.getString("tag");
    }

有一個名為GSON的超酷lib,它非常有助於將所有類型的JSON轉換為其對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM