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中显示两列的主要内容,如果未能解决你的问题,请参考以下文章
angularjs - 将一组对象(JSON 数据)发布到 PHP 页面