Android 怎样将一组json数据的key value对应的放入到listview中显示两列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 怎样将一组json数据的key value对应的放入到listview中显示两列相关的知识,希望对你有一定的参考价值。

首先使用了okhttp3获取到返回的json数据,然后通过gson解析成一个对象,开始的时候将对象放入list但是在自定义的adapter出现问题,后来放入map中但最终只显示出一组key-value数据,而且打印之后发现所有数据对是无序的,新手,请教大神

参考技术A 有个简单的,就是你直接使string然后把它new JSONobject 然后使用迭代器,for循环,然后就不用管什么value key 直接输出存成string就行。或是拼接。这样就不需要大量的操作几行代码即可。 参考技术B 首先使用了okhttp3获取到返回的json数据,然后通过gson解析成一个对象,开始的时候将对象放入list但是在自定义的adapter出现问题,后来放入map中但最终只显示出一组key-value数据,而且打印之后发现所有数据对是无序的,应该在json解析和自定义adapter有问题 参考技术C 就是你直接使string然后把它new JSONobject 然后使用迭代器,for循环,然后就不用管什么value key 直接输出存成string就行。或是拼接。这样就不需要大量的操作。 参考技术D key是固定不变的,用key来获取value.json解析可以用gson追问

之后那?怎样将数据对放入listview中?key和value相对应

追答

你最后要显示成什么样的?
有数据了不会显示?

如何仅通过一次调用将一组对象保存到猫鼬数据库?

【中文标题】如何仅通过一次调用将一组对象保存到猫鼬数据库?【英文标题】:How to save an array of objects to mongoose DB with only one call? 【发布时间】:2012-04-16 18:12:19 【问题描述】:

有没有什么方法可以通过 one 调用将 JSON 对象数组保存到 mongodb? 类似:

schemeObject.save(array_of_json_object, callback);

我正在使用mongoosejs

【问题讨论】:

能否更新正确答案? @IcyFlame 从技术上讲,您链接的帖子与这篇文章是重复的。 @DanMandle 对!我没有注意到日期。感谢您指出。 你也可以试试这个:***.com/questions/16726330/… 【参考方案1】:

有一种使用 MongooseJS 批量插入的方法。我不确定这是否是一项新功能,因为有人提出/回答了这个问题,但我想如果有人通过搜索来到这里,他们应该知道如何去做。

var array = [ type: 'jelly bean' ,  type: 'snickers' ];
Candy.create(array, function (err, jellybean, snickers) 
  if (err) // ...
);

这里是文档:http://mongoosejs.com/docs/api.html#model_Model.create

【讨论】:

如果我们想创建新文档,这应该可以工作。更新从查询返回的数组或文档怎么样? 为此,我认为您必须对结果执行 find() 然后 forEach() ,更新值并为每个值执行 save() 。但我自己对 Mongoose 还是很陌生。【参考方案2】:

我认为 mongooosejs 不可能。但是,您可以使用本机支持的 ​​mongodb 的 BATCH 插入。

有用的链接:

http://www.mongodb.org/display/DOCS/Inserting#Inserting-Bulkinserts

https://groups.google.com/forum/#!msg/mongoose-orm/IkPmvcd0kds/bZuYCN_orckJ

【讨论】:

答案在第二个链接中找到。谢谢【参考方案3】:

这也适用于猫鼬

Laptop.insertMany(laptopData, function (err, laptop) 
  if (err) 
    console.log(err);
  ;
  console.log(laptop);
);

【讨论】:

【参考方案4】:

这样的事情怎么样?我知道它会遍历整个数组.. 不要问我关于 Big O 的问题.. 可能不是最好的插入方式,但仅适用于某种初始数据转储..

var arr = // array of objects;
    res = [];

arr.forEach(function (item) 
    item.save(function (err) 
        res.push(err);
        if (res.length === arr.length)
        
            // Done
        
    );
);

【讨论】:

如果是一个一个的,那不会是批量插入!【参考方案5】:

我使用的另一种解决方法。如果你使用的是带有 Promise 的猫鼬,你可以使用 Q 来做到这一点。

您可以使用以下代码开始使用 Q 作为 mongoose 的默认承诺:

const mongoose = require('mongoose');
mongoose.Promise = require('q').Promise;

然后您可以保存一组文档,如下所示。假设我们正在存储一个用户模型数组,我在users 变量中显示了这些模型。

Q
  .all(users.map(curr => curr.save()))
  .then((results) =>  //do something )
  .catch((err) =>  //handle error )

.save() 将返回一个 q 承诺并使用数组 map 函数,我们将使用用户模型数组创建一个承诺数组。

【讨论】:

【参考方案6】:

我得到了解决方案而不是使用

new model_name(
your data
)

使用这个

model_name.create(your data).then(res).catch(err) 

// 简单的承诺事项

【讨论】:

以上是关于Android 怎样将一组json数据的key value对应的放入到listview中显示两列的主要内容,如果未能解决你的问题,请参考以下文章

JSON.stringify(array) 用方括号括起来

android 怎样将数据以json格式保存在手机文件中?

angularjs - 将一组对象(JSON 数据)发布到 PHP 页面

请完整写出如下代码:将一组string数据存储到相应的map中,并且遍历这个map输出相应的key和value。

java怎样将一组对象传入Oracle存储过程

如何仅通过一次调用将一组对象保存到猫鼬数据库?