[英]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.