java json与xml之间的相互转化


public interface WordCodeService {

String xmlJsonObj(String xml);

String jsonXmlObj(String json);
}


@Service
public class WordCodeServiceImpl implements WordCodeService {

@Override
public String xmlJsonObj(String xml) {
return XML.toJSONObject(xml).toString();
}

@Override
public String jsonXmlObj(String str) {
str = str.trim();
StringBuilder s = new StringBuilder();
if ("[".equals(String.valueOf(str.charAt(0)))) {
forArray(JSON.parseArray(str), s);
} else {
forObject(JSON.parseObject(str), s);
}
return s.toString();
}

private void forArray(JSONArray array, StringBuilder s){
for (int i = 0; i < array.size(); i++) {
Object o = array.get(0);
if (o instanceof JSONArray) {
s.append("<").append(i).append(">");
forArray((JSONArray) o, s);
s.append("</").append(i).append(">");
} else if (o instanceof JSONObject){
s.append("<").append(i).append(">");
forObject((JSONObject) o, s);
s.append("</").append(i).append(">");
} else {
s.append("<").append(i).append(">").append(o).append("</").append(i).append(">");
}
}
}

private void forObject(JSONObject object, StringBuilder s){
for (String key:object.keySet()) {
System.out.println(key);
Object o = object.get(key);
if (o instanceof JSONArray) {
s.append("<").append(key).append(">");
forArray((JSONArray) o, s);
s.append("</").append(key).append(">");
} else if (o instanceof JSONObject){
s.append("<").append(key).append(">");
forObject((JSONObject) o, s);
s.append("</").append(key).append(">");
} else {
s.append("<").append(key).append(">").append(o).append("</").append(key).append(">");
}
}
}
}



0 0
讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
帮助