JSONArrayBuilder:用于生成格式简单的json array字符串
发布时间:2020-12-16 19:26:17 所属栏目:百科 来源:网络整理
导读:JSONArrayBuilder import java.util.Iterator;import java.util.LinkedHashMap;import java.util.LinkedList;import java.util.List;import java.util.Map;/** * 用于生成json数组 * @author shanl * */public class JSONArrayBuilder {ListMapString,String
JSONArrayBuilder import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; /** * 用于生成json数组 * @author shanl * */ public class JSONArrayBuilder { List<Map<String,String>> ls = new LinkedList<Map<String,String>>(); Map<String,String> object = null; public void newObject(){ object = new LinkedHashMap<String,String>(); } public void endObject(){ if(null==object){ throw new RuntimeException("请先调用newObject()"); } ls.add(object); } public void put(String key,String value){ if(null==object){ throw new RuntimeException("请先调用newObject()"); } this.object.put(replaceJsonChar(key),replaceJsonChar(value)); } // public void add(Map<String,String> item){ // ls.add(item); // } public void add(JSONArrayBuilder ja){ add(ja.getJsonArray()); } public void add(List<Map<String,String>> ls){ this.ls.addAll(ls); } public List<Map<String,String>> getJsonArray(){ return ls; } /** * 将数据转换成json格式字符?? * @return */ public String toJsonString(){ String sb = ""; String key = null; String value = null; Iterator<String> keys = null; sb = "["; for(Map<String,String> item: ls){ keys = item.keySet().iterator(); sb += "{"; while(keys.hasNext()){ key = keys.next(); value = item.get(key); sb += """+ key +"":"; sb += """+ value +"","; } if(sb.endsWith(",")){ sb = sb.substring(0,sb.length()-1); } sb += "},"; } if(sb.endsWith(",") ){ sb = sb.substring(0,sb.length()-1); } sb += "]"; sb = sb.replaceAll("{},",""); sb = sb.replaceAll("{}",""); return sb; } public String toString(){ return toJsonString(); } private String replaceJsonChar(String str){ StringBuilder sb = new StringBuilder(); char[] chs = str.toCharArray(); for(char c: chs){ switch (c) { case '"': sb.append("""); break; case '': sb.append("\"); break; case '/': sb.append("/"); break; case 'b': sb.append("b"); break; case 'f': sb.append("f"); break; case 'n': sb.append("n"); break; case 'r': sb.append("r"); break; case 't': sb.append("t"); break; default: sb.append(c); } } return sb.toString(); } }
JSONArrayBuilder 的测试类 public class Test4 { public static void main(String[] args){ t2(); // t1(); } static void t2(){ JSONArrayBuilder jsonArrayBuilder = new JSONArrayBuilder(); jsonArrayBuilder.newObject(); // for(int i=0; i<2; i++){ // jsonArrayBuilder.put("msg","测试消息"+i); // jsonArrayBuilder.put("result","true"); // } jsonArrayBuilder.endObject(); jsonArrayBuilder.newObject(); for(int i=0; i<5; i++){ jsonArrayBuilder.put("msg"+i,"测试消息"+i); jsonArrayBuilder.put("result","true"); } jsonArrayBuilder.endObject(); String ja = jsonArrayBuilder.toJsonString(); System.out.println(ja); } static void t1(){ JSONArrayBuilder jsonArrayBuilder = new JSONArrayBuilder(); for(int i=0; i<2; i++){ jsonArrayBuilder.newObject(); jsonArrayBuilder.put("msg","true"); jsonArrayBuilder.endObject(); } JSONArrayBuilder jsonArrayBuilder0 = new JSONArrayBuilder(); for(int i=0; i<2; i++){ jsonArrayBuilder0.newObject(); jsonArrayBuilder0.put("msg","测试消息"+i); jsonArrayBuilder0.put("result","true"); jsonArrayBuilder0.endObject(); } jsonArrayBuilder.add(jsonArrayBuilder0); String ja = jsonArrayBuilder.toJsonString(); System.out.println(ja); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |