json转xml

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


 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("", 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("", elm));
                                sbf.append("\n");
                            }

                        }else{
                            String format = String.format("<%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", key, jsonObject.getString(key), key);
                        sbf.append("\n");
                        sbf.append(format);
                        sbf.append("\n");
                    }
                }


            }
        }
        return sbf.toString();
    }

你可能感兴趣的:(java,json,java,字符串,xml)