转换为List时从JSON数组中删除键字符串

时间:2016-10-11 09:36:48

标签: android json

我现在对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);

2 个答案:

答案 0 :(得分:1)

将您的代码更改为以下内容:

...
for (int i=0;i< jarr.length();i++){
    JSONObject cityObject = jarr.getJSONObject(i);
    cityValues.add(cityObject.getString("city"));
}
...

答案 1 :(得分:0)

试试这个:

  1. 首次使用split 例如:String [] result = splits [0] .split(&#34;:&#34;);
  2. 您将获得数组结果中的两个项目。结果[0] = {&#34; city&#34;和结果[1] =&#34; name1&#34;}

    1. 如果您想获得密钥使用结果[0]
    2. 使用replace从result [0]中删除符号。示例:data = result [0] .replace(&#34; \&#34;&#34;,&#34;&#34;)。replace(&#34; {&#34;,&#34; ;&#34);

      在循环中使用它,应该可以工作