java 解析XML 乱码

//            1.创建Reader对象
            SAXReader reader = new SAXReader();
            reader.setEncoding("utf-8");// 如果有乱码这里设置成utf-8即可,这里只支持两种编码格式,GBK直接转utf-8即可,不支持填写gbk
            //2.加载xml
            Document document = reader.read("文件路径");
            //3.获取根节点
            Element rootElement = document.getRootElement();
            Element body = rootElement.element("body");
            Element response = body.element("response");
            Element OrigRptJson = response.element("OrigRptJson");
            String jsonstr = OrigRptJson.getStringValue();
            JSONObject jsonObject = (JSONObject) JSONObject.parse(jsonstr);
            JSONObject creditDetail = jsonObject.getJSONObject("creditDetail");
            JSONArray assetDisposition = creditDetail.getJSONArray("assetDisposition");
            logger.info("解析的内容assetDisposition:{}",assetDisposition);
            List<Map<String,String>> list = (List<Map<String,String>>)JSONArray.parse(String.valueOf(assetDisposition));
            for (Map<String,String> a :list
            ) {
                logger.info("解析的内容:{}",a);
                String b= a.get("organname");
                logger.info("解析的内容:{}",b);
            }

接收从其他地方传过来的String格式的xml

Document document = DocumentHelper.parseText(creditJson);//creditJson String 格式的xml
            document.setXMLEncoding("utf-8");//设置编码格式源文件是GBK不设置会有乱码
            //3.获取根节点
            Element rootElement = document.getRootElement();
            Element body = rootElement.element("body");
            Element response = body.element("response");
            Element OrigRptJson = response.element("OrigRptJson");
            String jsonstr = OrigRptJson.getStringValue();
            JSONObject jsonObject = (JSONObject) JSONObject.parse(jsonstr);
            JSONObject creditDetail = jsonObject.getJSONObject("creditDetail");
            JSONArray assetDisposition = creditDetail.getJSONArray("assetDisposition");//这里获取到的是一个list所以用JSONArray 接收
            logger.info("解析的内容assetDisposition:{}",assetDisposition);
            List<Map<String,String>> list = (List<Map<String,String>>)JSONArray.parse(String.valueOf(assetDisposition));
            for (Map<String,String> a :list
            ) {
                logger.info("解析的内容:{}",a);
                String b= a.get("organname");
                logger.info("解析的内容:{}",b);
            }
            logger.info("返回的数据-----------{}",creditJson);
            if (creditJson != null && creditJson.length() > 0) {
                requestJson = JSONObject.parseObject(creditJson);
            }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值