【问题标题】:Parsing string array from JSON object从 JSON 对象解析字符串数组
【发布时间】:2017-11-07 17:46:40
【问题描述】:
这可能太容易了,但我就是找不到解决办法。如何从JSON 对象中直接解析出string array?
例如,
json = {"names":["John", "Alex", "David"]}
我不能做json.getJSONArray("names"),因为它不返回stringarray。
【问题讨论】:
标签:
java
android
json
parsing
arraylist
【解决方案1】:
您可以将数据作为 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);
【解决方案2】:
朋友可以试试这个
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();
}
【解决方案3】:
试试这个哥们,你会得到一个字符串数组的结果。
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()]);
【解决方案4】:
试试这个功能
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(); }
}