java轉map
Ⅰ java,list數組轉換成map
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
publicclassTestArray{
publicstaticvoidmain(String[]args){
/**
*初始化一個List,存放String數組,數組的第一位是amount,第二位是year,第三位是month,第四位是day。
*/
List<String[]>arr=newArrayList<String[]>();
arr.add(newString[]{"89","2015","06","21"});
arr.add(newString[]{"89","2015","06","22"});
arr.add(newString[]{"89","2015","06","23"});
/**
*創建一個StringBuffer臨時存放map.key。
*/
StringBufferkey=newStringBuffer();
/**
*建一個map對象,
*/
Map<String,String>map=newHashMap<String,String>();
for(inti=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());
}
}
輸出效果:
Ⅱ java將 json數組轉map
首先你的[{"key":"1"},{"key":"2"}] 是個 json 數組格式
如果是簡單的json 格式, 比如"{"key1":"1","key2":"2"}"
那麼你可以使用 下面的示例:
publicstaticvoidmain(String[]args){
StringjsonString="{"key1":"1","key2":"2"}";
//Stringstr="[{"key1":"1"},{"key2":"2"}]";
Map<String,Object>map=toMap(jsonString);
for(Map.Entry<String,Object>entry:map.entrySet()){
Stringkey=entry.getKey();
Objectvalue=entry.getValue();
System.out.println(key+":"+value);
}
}
@SuppressWarnings("unchecked")
publicstatic<T>Map<String,T>toMap(Stringjson){
Map<String,T>map=newHashMap<String,T>();
JSONObjectjsonObject=JSONObject.fromObject(json,newJsonConfig());
Iterator<String>keys=jsonObject.keys();
while(keys.hasNext()){
Stringkey=keys.next();
Objectvalue=jsonObject.get(key);
map.put(key,(T)value);
}
returnmap;
}
執行結果:
你這種數組格式, 轉成 map 那麼 同名的key 會覆蓋的....
Ⅲ java在後台如何將前台傳過來的json格式數據轉換為map
importcom.alibaba.fastjson.JSON;
importcom.alibaba.fastjson.JSONObject;
importjava.util.Map;
/**
*JSON字元串自動轉換
*Createdbyzknon2016/8/22.
*/
publicclassJsonToMapTest01{
publicstaticvoidmain(String[]args){
Stringstr="{"0":"zhangsan","1":"lisi","2":"wangwu","3":"maliu"}";
//第一種方式
Mapmaps=(Map)JSON.parse(str);
System.out.println("這個是用JSON類來解析JSON字元串!!!");
for(Objectmap:maps.entrySet()){
System.out.println(((Map.Entry)map).getKey()+""+((Map.Entry)map).getValue());
}
//第二種方式
MapmapTypes=JSON.parseObject(str);
System.out.println("這個是用JSON類的parseObject來解析JSON字元串!!!");
for(Objectobj:mapTypes.keySet()){
System.out.println("key為:"+obj+"值為:"+mapTypes.get(obj));
}
//第三種方式
MapmapType=JSON.parseObject(str,Map.class);
System.out.println("這個是用JSON類,指定解析類型,來解析JSON字元串!!!");
for(Objectobj:mapType.keySet()){
System.out.println("key為:"+obj+"值為:"+mapType.get(obj));
}
//第四種方式
/**
*JSONObject是Map介面的一個實現類
*/
Mapjson=(Map)JSONObject.parse(str);
System.out.println("這個是用JSONObject類的parse方法來解析JSON字元串!!!");
for(Objectmap:json.entrySet()){
System.out.println(((Map.Entry)map).getKey()+""+((Map.Entry)map).getValue());
}
//第五種方式
/**
*JSONObject是Map介面的一個實現類
*/
JSONObjectjsonObject=JSONObject.parseObject(str);
System.out.println("這個是用JSONObject的parseObject方法來解析JSON字元串!!!");
for(Objectmap:json.entrySet()){
System.out.println(((Map.Entry)map).getKey()+""+((Map.Entry)map).getValue());
}
//第六種方式
/**
*JSONObject是Map介面的一個實現類
*/
MapmapObj=JSONObject.parseObject(str,Map.class);
System.out.println("這個是用JSONObject的parseObject方法並執行返回類型來解析JSON字元串!!!");
for(Objectmap:json.entrySet()){
System.out.println(((Map.Entry)map).getKey()+""+((Map.Entry)map).getValue());
}
StringstrArr="{{"0":"zhangsan","1":"lisi","2":"wangwu","3":"maliu"},"+
"{"00":"zhangsan","11":"lisi","22":"wangwu","33":"maliu"}}";
//JSONArray.parse()
System.out.println(json);
}
}