哈希映射到JSON数组

掠夺

我想问一下这里是否有人知道如何将HashMap转换为要在适配器上使用的JSON数组。逻辑是登录时,它将使用Volley在Web服务器上获取数据,将其存储在SQLite数据库中,同时将在自定义列表视图上显示检索到的数据。关键是,如果您要移至应用程序上的另一个片段然后返回,它将再次要求齐射,这将需要一些时间。我希望如果可以返回到SQLite数据库中存储的数据,并且如果用户希望使用SwipeRefresh更新数据,那么现在该更新新数据了。

这是我的代码。

public void LoadMarkets()
{
    Map<String,String>tmpRate = new HashMap<String,String>();

    RateDb db = new RateDb(getActivity().getApplicationContext());
    Cursor rs = db.getData();
    if(rs!=null && rs.getCount()>0)
    {
        if(rs.moveToFirst())
        {
            while(rs.moveToNext())
            {
                tmpRate.put("rateID",rs.getString(rs.getColumnIndex(RateDb.rateID)));
                tmpRate.put("Name",rs.getString(rs.getColumnIndex(RateDb.rateName)));
                tmpRate.put("Rate",rs.getString(rs.getColumnIndex(RateDb.rateRate)));
                tmpRate.put("Date",rs.getString(rs.getColumnIndex(RateDb.rateDate)));
                tmpRate.put("Time",rs.getString(rs.getColumnIndex(RateDb.rateTime)));
                tmpRate.put("Ask",rs.getString(rs.getColumnIndex(RateDb.rateAsk)));
                tmpRate.put("Bid",rs.getString(rs.getColumnIndex(RateDb.rateBid)));
                tmpRate.put("Balance",rs.getString(rs.getColumnIndex(RateDb.rateBalance)));
                //Log.d("MyDebug",rs.getString(rs.getColumnIndex(RateDb.rateName)));
            }
        }
    }
    rs.close();
    db.close();
    JSONObject jsonObject = new JSONObject(tmpRate);
    JSONArray jsonArray = new JSONArray();
    jsonArray.put(jsonObject);
    RowAAdapter rowAAdapter = new RowAAdapter(getActivity(),jsonArray);
    lvMarkets.setAdapter(rowAAdapter);
    swipeRefreshLayout.setRefreshing(false);
}

问题是,当我加载此函数时,它仅显示最后一个数据。

我希望你能帮助我解决我的问题。

非常感谢你。

阿什什·兰詹(Ashish ranjan)

您可以将值直接放入jsonObject中,而不是像这样将其添加到哈希图中:

public void LoadMarkets()
{


    RateDb db = new RateDb(getActivity().getApplicationContext());
    Cursor rs = db.getData();
    if(rs!=null && rs.getCount()>0)
    {
        if(rs.moveToFirst())
        {
            while(rs.moveToNext())
            {
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("rateID",rs.getString(rs.getColumnIndex(RateDb.rateID)));
                jsonObject.put("Name",rs.getString(rs.getColumnIndex(RateDb.rateName)));
                jsonObject.put("Rate",rs.getString(rs.getColumnIndex(RateDb.rateRate)));
                jsonObject.put("Date",rs.getString(rs.getColumnIndex(RateDb.rateDate)));
                jsonObject.put("Time",rs.getString(rs.getColumnIndex(RateDb.rateTime)));
                jsonObject.put("Ask",rs.getString(rs.getColumnIndex(RateDb.rateAsk)));
                jsonObject.put("Bid",rs.getString(rs.getColumnIndex(RateDb.rateBid)));
                jsonObject.put("Balance",rs.getString(rs.getColumnIndex(RateDb.rateBalance)));
                jsonArray.put(jsonObject);
                //Log.d("MyDebug",rs.getString(rs.getColumnIndex(RateDb.rateName)));
            }
        }
    }
    rs.close();
    db.close();
    RowAAdapter rowAAdapter = new RowAAdapter(getActivity(),jsonArray);
    lvMarkets.setAdapter(rowAAdapter);
    swipeRefreshLayout.setRefreshing(false);
}

您的代码的问题是:

一次又一次地valueswith keys "rateID", "Name"...等放入while循环中,因此以前的值将被新值替换,最后您的哈希图中只有一组数据。这就是为什么只获取最后一组数据的原因。

试试上面的代码。它应该按预期工作。

这将JsonObject在循环中创建一个新变量并将其成功添加到jsonArray后起作用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将哈希数组反向映射到哈希

来自分类Dev

如何将数组映射到哈希

来自分类Dev

解析 JSON 以映射到数组

来自分类Dev

json.Marshal映射到JSON数组

来自分类Dev

将数组映射到哈希语法错误

来自分类Dev

使用递增的键名称将数组值映射到哈希

来自分类Dev

将php数组映射到嵌套的json

来自分类Dev

将php数组映射到嵌套的json

来自分类Dev

将 json 值映射到数组

来自分类Dev

D3.js JSON forEach映射到新数组

来自分类Dev

使用深度嵌套的json对象映射到数组

来自分类Dev

logstash-通过转换映射到json数组

来自分类Dev

如何将异构JSON数组映射到Java对象?

来自分类Dev

RestTemplate将JSON数组映射到对象列表

来自分类Dev

将JSON映射到Knockout可观察数组

来自分类Dev

将变化的json数据映射到可观察的数组

来自分类Dev

如何将此数据映射到 React 中的 json 数组?

来自分类Dev

一致地将字符串映射到数组索引(哈希函数)

来自分类Dev

将数组元素映射到完美的哈希索引NP是否完成?

来自分类Dev

JAXB映射到JSON

来自分类Dev

将SwiftyJSON映射到数组

来自分类Dev

将对象数组展平,排序并映射到哈希数组(具有一些折叠值)中

来自分类Dev

哈希表-将哈希值映射到索引

来自分类Dev

哈希数组映射的Trie性能

来自分类Dev

Angular Typescript映射到JSON

来自分类Dev

将数组部分映射到新数组

来自分类Dev

将索引数组映射到坐标数组

来自分类Dev

将键数组映射到值数组

来自分类Dev

将数组映射到数组内部