import java.util.ArrayList
import java.util.HashMap
import java.util.List
import java.util.Map
public class TestArray {
public static void main(String[] args) {
/**
* 初始化一个 List,存放 String 数组,数组的第一位是 amount,第二位是 year,第三位是 month,第四位是 day 。
*/
List<String[]> arr = new ArrayList<String[]>()
arr.add(new String[] { "89", "2015", "06", "21" })
arr.add(new String[] { "89", "2015", "06", "22" })
arr.add(new String[] { "89", "2015", "06", "23" })
/**
* 创建一个 StringBuffer 临时存放 map.key 。
*/
StringBuffer key = new StringBuffer()
/**
* 建一个 map 对象,
*/
Map<String, String> map = new HashMap<String, String>()
for (int i = 0 i < arr.size() i++) {
// 获取 List 中的 String 数组元素。
String[] element = arr.get(i)
// 数组的第二位、第三位、第四位拼接成 key 。
key.append(element[1]).append(element[2]).append(element[3])
// 数组的第一位拼接成 value,初始化 map。
map.put(key.toString(), element[0])
// 临时的 StringBuffer 清空内容以便下次循环继续使用。
key.delete(0, key.length())
}
// 打印 map
System.out.println(map.toString())
}
}
输出效果:
首先你的 [{"key":"1"},{"key":"2"}] 是个 json 数组格式
如果是简单的json 格式, 比如 "{\"key1\":\"1\",\"key2\":\"2\"}"
那么你可以使用 下面的示例:
public static void main(String[] args){String jsonString = "{\"key1\":\"1\",\"key2\":\"2\"}"
//String str = "[{\"key1\":\"1\"},{\"key2\":\"2\"}]"
Map<String, Object> map = toMap(jsonString)
for (Map.Entry<String, Object> entry : map.entrySet()){
String key = entry.getKey()
Object value = entry.getValue()
System.out.println(key + ":" + value)
}
}
@SuppressWarnings("unchecked")
public static <T> Map<String, T> toMap(String json){
Map<String, T> map = new HashMap<String, T>()
JSONObject jsonObject = JSONObject.fromObject(json, new JsonConfig())
Iterator<String> keys = jsonObject.keys()
while (keys.hasNext()){
String key = keys.next()
Object value = jsonObject.get(key)
map.put(key, (T) value)
}
return map
}
执行结果:
你这种数组格式, 转成 map 那么 同名的key 会覆盖的....