【问题标题】:how to convert Object into JSONObject如何将 Object 转换为 JSONObject
【发布时间】:2012-09-18 07:01:58
【问题描述】:

我有一个使用JSONArray 填充的列表视图。然后我将上下文菜单添加到我的列表中。

现在我想检索用户选择的列表项的值,所以我使用了

 AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();       
 Object object=  list.getItemAtPosition(info.position); 

现在的问题是 getItemAtPosition() 返回一个 Object 。如何将其转换为相对的 JSONOBject

【问题讨论】:

  • 你必须使用 gson 库从 java 中获取 JSONObject。
  • 如果你用 JSonArray 填充适配器,你为什么要尝试将它转换为 JSONObject?
  • 我填充了我的适配器以使用 JSONArray 填充 ListView,但是 ListView 的每一行都是一个 JSONObject。我想从列表中获取一行。所以 JSONObject
  • 列表视图的每一行都是一个视图。你能发布你的适配器吗?
  • 哦!在这里发现了问题......我在适配器中使用了HashMap。我从 Jsonarray 获取数据,将其解析为 hashmap,然后将其添加到我的适配器中。所以现在我没有将 Object 转换为 JSONObject ,而是使用了 HashMap。工作正常 。谢谢大家。

标签: android json object android-listview


【解决方案1】:
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();       
JSONObject object = (JSONObject) list.getItemAtPosition(info.position); 

这里不需要 gson 库,因为自 Api 1 以来 JSON 是 Android 库 org.json.JSONObject 的一部分。

【讨论】:

    【解决方案2】:

    您需要将返回值转换为 JSONObject。

    【讨论】:

    • 它给出了一个类转换异常。
    【解决方案3】:

    因为我使用了 JSONArray 然后我将其解析为相应的 HashMap ,所以在我的适配器中使用了它。所以函数 getItemAtPosition 以 Object 的形式返回一个 HashMap 我的代码的问题是我将 HashMap 值转换为 JSONObject,因此我没有将其转换为 JSONObject,而是使用了 Hashmaps。 HashMap object= (HashMap) list.getItemAtPosition(info.position);

    【讨论】:

      猜你喜欢
      • 2020-07-13
      • 1970-01-01
      • 2012-06-03
      • 2021-07-11
      • 2015-10-30
      • 2011-11-03
      • 2017-08-01
      • 2020-06-11
      • 2018-01-07
      相关资源
      最近更新 更多