采用fastjson对String类型数据进行json构造,然后将json数据转换为xml格式的数据,思路应该比较简单,最终的<?xml version>等信息自己进行组装即可


 public static String jsonConvertToXml(String json) {
        if (StringUtils.isBlank(json)) {
            return "";
        }
        StringBuilder sbf = new StringBuilder();
        Object parse = null;
        try {
            parse = JSON.parse(json);
        } catch (Exception e) {
            return null;
        }
        if (parse instanceof List) {
            List arr = (List) parse;
            for (int i = 0; i < arr.size(); i++) {
                String s = jsonConvertToXml(String.valueOf(arr.get(i)));
                sbf.append(s + "\n");
            }
        } else if (parse instanceof Object) {
            JSONObject jsonObject = (JSONObject) parse;

            Set<String> keySet = jsonObject.keySet();

            for (String key : keySet) {
                if (jsonObject.get(key) instanceof List) {
                    sbf.append("\n");
                    sbf.append(String.format("<%s>", key));
                    String arr = jsonConvertToXml(jsonObject.get(key).toString());
                    sbf.append(arr);
                    sbf.append(String.format("</%s>", key));
                    sbf.append("\n");
                }else{
                    JSONObject entityJson=null;
                    try {
                        entityJson = jsonObject.getJSONObject(key);
                        if (jsonObject.getJSONObject(key).size() > 1) {
                            Set<String> entityHasMoreElm = jsonObject.getJSONObject(key).keySet();
                            for (String elm : entityHasMoreElm) {
                                sbf.append("\n");
                                sbf.append(String.format("<%s>", elm));
                                String s = jsonConvertToXml(jsonObject.getJSONObject(key).get(elm).toString());
                                sbf.append(s);
                                sbf.append(String.format("</%s>", elm));
                                sbf.append("\n");
                            }

                        }else{
                            String format = String.format("<%s>%s</%s>", key, jsonObject.getString(key), key);
                            sbf.append("\n");
                            sbf.append(format);
                            sbf.append("\n");
                        }
                    }catch (Exception e){
                        String format = String.format("<%s>%s</%s>", key, jsonObject.getString(key), key);
                        sbf.append("\n");
                        sbf.append(format);
                        sbf.append("\n");
                    }
                }


            }
        }
        return sbf.toString();
    }
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐