##0187ST=32;CN=2011;PW=123456;MN=399HOLL0000219;CP=&&DataTime=20171219000 933;B01TOTAL-Rtd=3.75;011-Rtd=23.6,011-Flag=N;060-Rtd=0.16,060-Flag=N;001-Rtd=7.06,001-F lag=N;B01-Rtd=3.755,B01-Flag=N&&FE41";
比如这个以分号和逗号来区分 解析成JSON 格式 求各位大腿帮帮忙!
##0187ST=32;CN=2011;PW=123456;MN=399HOLL0000219;CP=&&DataTime=20171219000 933;B01TOTAL-Rtd=3.75;011-Rtd=23.6,011-Flag=N;060-Rtd=0.16,060-Flag=N;001-Rtd=7.06,001-F lag=N;B01-Rtd=3.755,B01-Flag=N&&FE41";
比如这个以分号和逗号来区分 解析成JSON 格式 求各位大腿帮帮忙!
public static void main(String[] args) {
String msg = "##0187ST=32;CN=2011;PW=123456;MN=399HOLL0000219;CP=&&DataTime=20171219000 933;B01TOTAL-Rtd=3.75;011-Rtd=23.6,011-Flag=N;060-Rtd=0.16,060-Flag=N;001-Rtd=7.06,001-F lag=N;B01-Rtd=3.755,B01-Flag=N&&FE41;";
// 替换掉##
msg = msg.replace("#", "");
StringBuilder json = new StringBuilder();
// 先按 “;” split
if (msg.contains(";")) {
json.append("{");
String[] strArr1 = msg.split(";");
for (String s : strArr1) {
if (!"".equals(s) && s.contains("=")) {
String[] strArr2 = s.split("=");
for (String s1 : strArr2) {
json.append("\"").append(s1).append("\"");
// 是不是最后一个,如果不是则append冒号
if (s1 != strArr2[strArr2.length -1]) {
json.append(":");
}
}
}
// 是不是最后一个,如果不是则append逗号,反之加 花括号
if (s != strArr1[strArr1.length - 1]) {
json.append(",");
} else {
json.append("}");
}
}
}
System.out.println(json.toString());
}