我现在对JSON很新,但是我需要转换一个包含相同键的JSON响应,但是将不同的值转换为ArrayList以与我的微调器一起使用。
我在这里尝试过:Converting JSONarray to ArrayList
但我得到了整个json字符串,但只需要值部分。 我无法弄清楚如何做到这一点,并找不到对我有用的答案:/
我想要的是像List这样的列表:
City1
City2
City3
但我在我的旋转器中:
{"city":"name1"}
{"city":"name2"}
{"city":"name3"}
我的代码是:
JSONArray obj = new JSONArray(response);
Spinner availableCitySpin;
availableCitySpin = (Spinner) findViewById(R.id.avCitySp);
List<String> cityValues = new ArrayList<String>();
if (jarr != null) {
for (int i=0;i< jarr.length();i++){
cityValues.add(jarr.getString(i).toString());
}
}
ArrayAdapter<String> cityAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, cityValues);
cityAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
availableCitySpin.setAdapter(cityAdapter);
availableCitySpin.setSelection(0);
答案 0 :(得分:1)
将您的代码更改为以下内容:
...
for (int i=0;i< jarr.length();i++){
JSONObject cityObject = jarr.getJSONObject(i);
cityValues.add(cityObject.getString("city"));
}
...
答案 1 :(得分:0)
试试这个:
split
例如:String [] result = splits [0] .split(&#34;:&#34;); 您将获得数组结果中的两个项目。结果[0] = {&#34; city&#34;和结果[1] =&#34; name1&#34;}
使用replace从result [0]中删除符号。示例:data = result [0] .replace(&#34; \&#34;&#34;,&#34;&#34;)。replace(&#34; {&#34;,&#34; ;&#34);
在循环中使用它,应该可以工作