2017-09-05 45 views
0
public Map<String, Object> toMap(JSONObject fees_history) throws JSONException { 
    Map<String, Object> map = new HashMap<String, Object>(); 
    jsonArray = new JSONArray(); 
    int j = 0; 
    Iterator<String> keysItr = fees_history.keys(); 
    while (keysItr.hasNext()) { 
     String key = keysItr.next().toString(); 
     Object value = fees_history.get(key); 
     if (value instanceof JSONArray) { 
      value = toList((JSONArray) value); 
     } else if (value instanceof JSONObject) { 
      value = toMap((JSONObject) value); 
      //How can i get the String value from this Object here 
      //here i am logging 
      Log.e("Value",value.toString()); 
      Unpaid_fees_detail_adapter unpaid_fees_detail_adapter = new Unpaid_fees_detail_adapter(ReportActivity.this, unpaid_fees_details); 
      listView.setAdapter(unpaid_fees_detail_adapter); 
     } 
     map.put(key, value); 
    } 
    return map; 
} 

这里得到键值对是我的对象的值,其在上午越来越如何从地图android中

{date=29-07-2017,Reciept=RC1, Amount=11800} 

我评论过那里,我的问题是 我怎样才能得到Object中的键值对。

我以map.get(Object)尝试了 很多办法,但我没有做到它。我只是想 我怎么能得到的date,Receipt,Amount

+0

您是否尝试过这个'value.getString( “收据”);'? – joao86

+0

已经尝试过,但给出错误地图不能传入对象 – Sushil

+0

您将value定义为Object,并且toMap()方法返回一个Map。所以值应该被声明为一个Map。 – Sanj

回答

2

单独的值试试这个。

String response = "{date=29-07-2017,Reciept=RC1, Amount=11800}"; 
String responseConvert = response.replace("=", ":"); 
Map<String, String> map = new HashMap<>(); 
Iterator<String> sIterator = null; 
try { 
    sIterator = new JSONObject(responseConvert).keys(); 
    while (sIterator.hasNext()) { 
     // get key 
     String key = sIterator.next(); 
     // get value 
     String value = new JSONObject(responseConvert).getString(key); 
     map.put(key, value); 
     Log.e("TAG", "key: " + key + ",value:" + value); 
    } 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 

注意

  1. JSON数据是非法的,所以我们必须把它转换。

    String responseConvert = response.replace("=", ":"); 
    
  2. 使用Map<String,String>Iterator<String>

    Map<String, String> map = new HashMap<>(); 
    Iterator<String> sIterator = new JSONObject(responseConvert).keys(); 
    
  3. 获取键和值

    // get key 
    String key = sIterator.next(); 
    // get value 
    String value = new JSONObject(responseConvert).getString(key); 
    
+0

我在代码中添加了'try catch'。你可以检查它。@ Sushil – KeLiuyue