package com.qxueyou.scc.base.util; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.StringTokenizer; import org.apache.commons.lang3.StringUtils; import com.alibaba.fastjson.JSON; /** * String 和 map的转换 * @author ody.yuan * */ public class StringMapUtils { /** * Map 转 String * * @param map 需要转换的map * @return */ public static String transMapToString(Map map){ if(null == map || map.isEmpty()){ return ""; } Entry entry; StringBuffer sb = new StringBuffer(); for(Iterator> iterator = map.entrySet().iterator(); iterator.hasNext();){ entry = (Entry)iterator.next(); sb.append(entry.getKey().toString()).append( "'" ).append(null==entry.getValue()?"": entry.getValue().toString()).append (iterator.hasNext() ? "^" : ""); } return sb.toString(); } /** * 调用transMapToString方法有map转得String,重新转回map * * @param mapString 调用transMapToString方法有map转得String * @return */ public static Map transStringToMap(String mapString){ if(StringUtils.isBlank(mapString)){ return new HashMap(); } Map map = new HashMap(); StringTokenizer items; for(StringTokenizer entrys = new StringTokenizer(mapString, "^");entrys.hasMoreTokens(); map.put(items.nextToken(), items.hasMoreTokens() ? (String.valueOf(items.nextToken())) : null)){ items = new StringTokenizer(entrys.nextToken(), "'"); } return map; } /** * json 转 map * @param json */ @SuppressWarnings("unchecked") public static Map json2Map(String json){ Map map = (Map)JSON.parse(json); return map ; } /** * map 转 json * @param json */ public static String map2Json(Map map){ String json = JSON.toJSONString(map,true); return json ; } /** * * @param args */ public static void main(String[] args) { String a = "{mobilePhone:'aa',userName:'123'}"; Map m1 = json2Map(a); Entry entry1; for(Iterator> iterator1 = m1.entrySet().iterator(); iterator1.hasNext();) { entry1 = (Entry)iterator1.next(); System.out.println(entry1.getKey() + ":" + entry1.getValue()); } Map s = new HashMap(); s.put("qq", "3225545"); s.put("moile", "133"); s.put("name", "stkkk"); Map s1 = new HashMap(); s1.put("qq", "3225545"); s1.put("moile", "133"); s1.put("name", "stkkk"); System.out.println(map2Json(s1)); System.out.println(transMapToString(s)); Map m = transStringToMap("qq'3225545^moile'133^name'stkkk"); Entry entry; for(Iterator> iterator = m.entrySet().iterator(); iterator.hasNext();) { entry = (Entry)iterator.next(); System.out.println(entry.getKey() + ":" + entry.getValue()); } } }