这可能太容易但我找不到解决方案。如何直接从string
对象中解析array
JSON
?
例如,
json = {"names":["John", "Alex", "David"]}
我无法json.getJSONArray("names")
,因为它不会返回string
array
。
答案 0 :(得分:3)
您可以将数据作为json数组获取,并通过它循环以创建列表
JSONObject jsonObject = new JSONObject("{names:['1','2','3']}");
JSONArray jsonArray = jsonObject.getJSONArray("names");
List<String> names = new ArrayList<String>();
for(int i = 0; i < jsonArray.length(); i++){
names.add(jsonArray.getString(i));
}
System.out.println(names);
答案 1 :(得分:0)
你可以试试我的朋友
try
{
JSONObject jsonObj = new JSONObject("Your json string");
JSONArray jsonArray = jsonObj .getJSONArray("names");
for(int i=0;i<jsonArray .length();i++)
{
String name= jsonArray.getString(i);
Log.i("..........",""+name);
// loop and add it to array or arraylist
}
}catch(Exception e)
{
e.printStackTrace();
}
答案 2 :(得分:0)
试试这个伙伴,你会得到一个字符串数组的结果。
String json = "{\"names\":[\"John\", \"Alex\", \"David\"]}";
JSONObject jsonObject = new JSONObject(json);
JSONArray jsonArray = jsonObject.getJSONArray("names");
List<String> list = new ArrayList<String>();
for (int i = 0; i < jsonArray.length(); i++) {
list.add(jsonArray.getString(i));
}
String[] stringArray = list.toArray(new String[list.size()]);
答案 3 :(得分:0)
尝试此功能
public void ParseJsonArray(json){
try {
//if you have 1 column in json array
JSONArray jsonArray = json.getJSONArray("names");
int count = 0;
//if you have more columns
while (count<jsonArray.length()){
JSONObject JO = jsonArray.getJSONObject(count);
String s1 = JO.getString("column1");
String s2 = JO.getString("column2");
String s3 = JO.getString("column3");
count++; }``
String StrFinal = jsonArray;
} catch (JSONException e) {
e.printStackTrace(); }
}