如果你需要查找,也需要顺序,数据少可以直接用数组
var dataList = [{
key: '01',
value: '01'
}, {
key: '02',
value: '02'
}, {
key: '10',
value: '10'
}, {
key: '11',
value: '11'
}, {
key: '21',
value: '21'
}]
// 通过遍历查找数据,如找 "11"
var v = (function(data, k) {
for (var i = 0, length = data.lengthi <lengthi++) {
if (data[i].key === k) {
return data[i].value
}
}
})(dataList, "11")
如果数据比较多,可以使用 object + array 的办法,比如
全选复制放进笔记var data = {
map: {
'01': '01',
'02': '02',
'10': '10',
'11': '11',
'21': '21'
},
order: [
"01", "02", "10", "11", "21"
]
}
遍历数据可以这样
data.order.forEach(function(key) {
console.log(key + " = " + data.map[key])
})
#Map转json数据出现顺序乱的问题,如果需要保持顺序,可以使用JSONObject 对象的toString()方法;
public static void main(String[] args) {
Map<String, String>map = new LinkedHashMap<String, String>()
map.put("3", "ccccc")
map.put("1", "aaaaa")
map.put("2", "bbbbb")
map.put("4", "ddddd")
System.out.println("默认自动排序")
System.out.println(ResultVOUtil.success(map))
输出结果:
自动排序
{"msg":"成功","code":"0","data":{"1":"aaaaa","2":"bbbbb","3":"ccccc","4":"ddddd"}}
//////////////////////////////////解决方案/////////////////////////////////////////////////////
JSON json = JSONUtil.parse(map)
JSONObject obj = new JSONObject()
obj.put("code", '0')
obj.put("msg", "成功")
obj.put("data", json)
System.out.println("保持原始顺序")
System.out.println(obj.toString())
}
输出结果:
保持原始顺序
{"msg":"成功","code":"0","data":{"3":"ccccc","1":"aaaaa","2":"bbbbb","4":"ddddd"}}
Map本身是无序的解决的办法就是将有序的数据结构放到Map中去;例如:ResultSet rs = ..//查询
List<Map<String, String>>temp = new LinkedList(Map<String, String>)
while(rs.next()){
//读取该条数据,返回字段名与字段值的Map
Map<String, String>m = read(rs)
temp.add(m)
}
//将结果放到Map中
application.put("ResultList", temp)