最近开发一个项目,前后端彻底分离, 然后前端还没开始, 后端写好了,需要测试, 就自己模拟了前端提交测试.
前后端分离开发,所有参数交互都是json字符串传递, 自己造参数也挺累, 特别是json格式什么的, 想想就随手写了个转换小工具. 兼容类型不多, 目前只支持Map 和 List转换. 包含 List套map 或者 map套List 等综合模式.
不说了,上代码:
//map转换json
public static String getJsonMap(Map<String,Object> map){
StringBuffer sbf = new StringBuffer();
Set<String> keys = map.keySet();
sbf.append("{");
for(String str : keys){
sbf.append("\"");
sbf.append(str);
sbf.append("\":");
if(map.get(str) instanceof Map){
sbf.append(getJsonMap((Map)map.get(str)));
}else if(map.get(str) instanceof List){
sbf.append(getJsonList((List) map.get(str)));
}else{
sbf.append("\"");
sbf.append(map.get(str));
sbf.append("\"");
}
sbf.append(",");
}
sbf = new StringBuffer(sbf.substring(0,sbf.length()-1));
sbf.append("}");
return sbf.toString();
}
//list转换json
public static String getJsonList(List list){
StringBuffer sbf = new StringBuffer("[");
for (Object object : list) {
if(object instanceof List){
sbf.append(getJsonList((List) object));
}else if(object instanceof Map){
sbf.append(getJsonMap((Map)object));
}else{
sbf.append(object.toString());
}
sbf.append(",");
}
sbf = new StringBuffer(sbf.substring(0,sbf.length()-1));
sbf.append("]");
return sbf.toString();
}
public static String test(){
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "小白白");
map.put("age", 2);
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for(int i=0; i<3; i++){
Map<String, Object> mapc = new HashMap<String, Object>();
mapc.put("a"+i, i);
mapc.put("b"+i, i);
mapc.put("c"+i, i);
list.add(mapc);
}
map.put("list", list);
String str = getJsonMap(map);
System.out.println(str);
return "";
}
结果: