
0关注
552
文章
0
收藏
2
次赞
281266
查看
Ta的博客 更多
SpringBoot 五种获取ApplicationContext的方式java中进行日期时间比较的4种方法SpringBoot整合WebSocket实现前后端互推消息CSS怎么画五角星?SpringBoot中RedisUtils工具类配置及直接使用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