2013-04-30 53 views
-3

对不起刚才看到你的答案现在,从来就一直在做一些代码: 这是我的代码:如何拆分字符串并将值关联到另一个?

ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>(); 


     JSONObject mainJson = new JSONObject(reply); 



      JSONArray jsonArray = mainJson.getJSONArray("Companies"); 



      for (int i = 0; i < jsonArray.length(); i++) { 

       HashMap<String, String> map = new HashMap<String, String>(); 

       JSONObject objJson = jsonArray.getJSONObject(i); 

       map.put("ID", objJson.getString("CompanyID")); 
       map.put("name", objJson.getString("CompanyName")); 
       mylist.add(map); 



       ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item); 
       adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       spinner.setAdapter(adapter); 

但日志说错误的数据进行解析or.json.exception!

+0

你需要从这个响应中获得ID吗? – 2013-04-30 09:17:02

+2

你的意思是你想解析上面的json? – Pragnani 2013-04-30 09:17:48

+0

我需要拆分这个,因为我想把名称放在一个微调框中,然后当我点击一个名称时,它会得到这个id,我该怎么做? – 2013-04-30 09:55:25

回答

0

你可以使用:

class result { 
     item[] items; 
    } 
    class item { 
     int id; 
     String name; 
    } 
    private class itemSerializer implements JsonSerializer<item> { 
    @Override 
      public User deserialize(JsonElement json, Type type, 
    JsonDeserializationContext context) throws JsonParseException { 
      JsonObject jobject = (JsonObject) json; 
      item it = new item(); 
      it.id = jobject.get("id").getAsInt(), 
      it.name = jobject.get("name").getAsString()); 
      return it; 
      } 
    } 

com.google.gson.GsonBuilder gson = new GsonBuilder(); 

    // and to serialize only id and name use custo deserializer: 

    gson.registerTypeAdapter(item.class, new itemSerializer()); 
    result res = new result(); 
    res = gson.create().fromJson(yourString, res.getClass()); 

,那么你必须加载列表<字符串>名称作为ArrayAdapter的分离器,可能还有一个HashMap的<字符串,字符串> mapNames2Ids映射名称点击ID

相关问题