xml以及json 和Java对象的相互转化

本文介绍了如何将XML数据转换为Map对象,并演示了如何从Map对象构建Java Bean实例。此外,还详细展示了如何通过HTTP请求获取JSON数据并将其解析为Java对象的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.xml对象转化为map对象

public Map<String, String> xmlStrToMap(String xmlStr) throws Exception { if (StringUtils.isEmpty(xmlStr)) { return null; } Map<String, String> map = new HashMap<String, String>(); // 将xml格式的字符串转换成Document对象 Document doc = DocumentHelper.parseText(xmlStr); // 获取根节点 Element root = doc.getRootElement(); // 获取根节点下的所有元素 List children = root.elements(); // 循环所有子元素 if (children != null && children.size() > 0) { for (int i = 0; i < children.size(); i++) { Element child = (Element) children.get(i); map.put(child.getName(), child.getTextTrim()); } } return map; }

2.map对象转化为普通的Javabean
public Bean mapToBean(Map<String, String> map) throws ParseException { Bean be= new Bean (); be.setName(map.get("Name")); ...... return be; }

3.通过http访问解析json对象
//读取图片json
    public static void ReadPicJsonForHomeDto(HomeDto homeDto) {
        String homePicUrl = "http://www.gymboclub.com/index.php?app=square&mod=Mate&act=homePicDtoList";
        String homePicContent = getContent(homePicUrl);
        
        List<HomePicDto> homePicDtoList = new ArrayList<HomePicDto>();
        JSONObject picObj;
        if(StringUtils.isBlank(homePicContent)){
            return;
        }
        try {
            picObj = new JSONObject(homePicContent);
            String picMsg = picObj.getString("msg");
            String picStatus = picObj.getString("status");
            System.out.println(picMsg+picStatus);
            
            String picData = picObj.getString("data");
            JSONArray picjsonArray = new JSONArray(picData);
            int picSize = picjsonArray.length();
            for(int i=0;i<picSize;i++){
                JSONObject picJsonObj = picjsonArray.getJSONObject(i);
                HomePicDto homePicDto = new HomePicDto();
                homePicDto.setPicPath(picJsonObj.get("picPath").toString());
                homePicDto.setLink(picJsonObj.get("link").toString());
                homePicDtoList.add(homePicDto);
            }
            homeDto.setHomePicDtoList(homePicDtoList);
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

  public static String getContent(String strUrl) {

        try {

            URL url = new URL(strUrl);
            BufferedReader br = new BufferedReader(new InputStreamReader(url

            .openStream(), "UTF-8"));

            String s = "";

            StringBuffer sb = new StringBuffer("");

            while ((s = br.readLine()) != null) {


               sb.append(s);

            }

            br.close();

            return sb.toString();

            // return sb.toString();

        } catch (Exception e) {

            log.error("Html获取失败!");

            return null;

        }

     }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值