<?xml version="1.0" encoding="GB2312"?>
<extend appname="ceshi" dispname="测试" apptype="1">
<fields>
<![CDATA[[name(sy),dispname(摄影),htmltype(text),length(),validtype(not_empty)][name(sx),dispname(摄像),htmltype(text),length(),validtype()][name(riqi),dispname(日期),htmltype(date),length(),validtype(not_empty)][name(xiala),dispname(下拉框),htmltype(select),length(),selectvalue(aaaa;aaaa|bbbb;bbbb|cccc;cccc),validtype(not_empty)][name(wenbenkuang),dispname(文本框),htmltype(textarea),length(),validtype(not_empty)]]]>
</fields>
</extend>
将上述字符串转成json
package org.example;
import net.sf.json.JSONArray;
import org.apache.commons.lang.StringUtils;
public class test222 {
public static void main(String[] args) {
String extcontent="<?xml version=\\\"1.0\\\" encoding=\\\"GB2312\\\"?><extend appname=\\\"ceshi\\\" dispname=\\\"测试\\\" apptype=\\\"1\\\"><fields><![CDATA[[name(sy),dispname(摄影),htmltype(text),length(),validtype(not_empty)][name(sx),dispname(摄像),htmltype(text),length(),validtype()][name(riqi),dispname(日期),htmltype(date),length(),validtype(not_empty)][name(xiala),dispname(下拉框),htmltype(select),length(),selectvalue(aaaa;aaaa|bbbb;bbbb|cccc;cccc),validtype(not_empty)][name(wenbenkuang),dispname(文本框),htmltype(textarea),length(),validtype(not_empty)]]]><\\/fields><\\/extend>";
extcontent =parseExtcontent(extcontent);
JSONArray contents = JSONArray.fromObject(extcontent);
System.out.println(contents);
}
private static String parseExtcontent(String extcontent){
if(StringUtils.isNotEmpty(extcontent)){
extcontent = extcontent.replaceAll(".*CDATA\\[","")
.replaceAll("\\]\\]>.*","")
.replaceAll("\\[","{")
.replaceAll("\\]","},").replaceAll("\\(","=\"").replaceAll("\\)","\"");
extcontent = "[" + extcontent.substring(0,extcontent.length() -1) + "]";
}
return extcontent;
}
}
第一步:先使用
.*CDATA\\[
去掉
<?xml version="1.0" encoding="GB2312"?>
<extend appname="ceshi" dispname="测试" apptype="1">
<fields>
<![CDATA[
第二步:去掉
]]>
</fields>
</extend>
第三步:所有的 [ 替换为 {
所有的 ] 替换为 }
第四步:( 替换为 =
第五步:去掉 )
第六步: 最后有个逗号,字符串截取到,号前面 然后加上 [ ]
最后结果