加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用jackson转换xml为hashmap形式

发布时间:2020-12-16 09:07:30 所属栏目:百科 来源:网络整理
导读:jackson这个开源包其实是个好东西,是对json转换进行的好东西。今天看到一个例子,综合 使用了apache common的ioutil包,jackson结合的例子,是将一个文件读入的XML转换为hashmap, 例子如下: [java] view plain copy import java.io.File; import java.io.Fi
jackson这个开源包其实是个好东西,是对json转换进行的好东西。今天看到一个例子,综合
使用了apache common的ioutil包,jackson结合的例子,是将一个文件读入的XML转换为hashmap,

例子如下:
[java] view plain copy
  1. importjava.io.File;
  2. importjava.io.FileInputStream;
  3. importjava.io.IOException;
  4. importjava.io.InputStream;
  5. importjava.util.ArrayList;
  6. importjava.util.List;
  7. importjava.util.Map;
  8. importnet.sf.json.JSON;
  9. importnet.sf.json.xml.XMLSerializer;
  10. importorg.apache.commons.io.IOUtils;
  11. importorg.codehaus.jackson.JsonGenerationException;
  12. importorg.codehaus.jackson.map.JsonMappingException;
  13. importorg.codehaus.jackson.map.ObjectMapper;
  14. importorg.codehaus.jackson.type.TypeReference;
  15. publicclassXML2JSONConvertor{
  16. staticvoidmain(String[]args)throwsException{
  17. InputStreamis=newFileInputStream(newFile(
  18. “e:jagannathanpersonaljava-projectssecondtest.xml”));
  19. Stringxml=IOUtils.toString(is);
  20. XMLSerializerxmlSerializer=newXMLSerializer();
  21. JSONjson=xmlSerializer.read(xml);
  22. System.out.println(json.toString(2));
  23. printJSON(json.toString( }
  24. voidprintJSON(StringjsonString){
  25. ObjectMappermapper=newObjectMapper();
  26. try{
  27. Map<String,Object>jsonInMap=mapper.readValue(jsonString,
  28. newTypeReference<Map<String,Object>>(){
  29. });
  30. List<String>keys=newArrayList<String>(jsonInMap.keySet());
  31. for(Stringkey:keys){
  32. System.out.println(key+“:”+jsonInMap.get(key));
  33. }
  34. }catch(JsonGenerationExceptione){
  35. e.printStackTrace();
  36. catch(JsonMappingExceptione){
  37. catch(IOExceptione){
  38. }

比如一个XML为:
copy
    <?xmlversion=”1.0″encoding=”UTF-8″?>
  1. <company>
  2. <name>JagsInc</name>
  3. <employees>
  4. <employee>
  5. <name>Jagan</name>
  6. <sex>Male</sex>
  7. <dob>24-jul</dob>
  8. </employee>
  9. <employee>
  10. <name>Satya</name>
  11. <sex>Male</sex>
  12. <dob>24-apr</dob>
  13. </employee>
  14. </employees>
  15. </company>

则可以看到jackson输出的map形式的输出:
copy
    7Feb,20137:20:50PMnet.sf.json.xml.XMLSerializergetType
  1. INFO:Usingdefaulttypestring
  2. {
  3. “name”:“JagsInc”,
  4. “employees”:[
  5. {
  6. "name":"Jagan",
  7. "sex":"Male",
  8. "dob":"24-jul"
  9. },248)"> "name":"Satya",108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> "sex":"Male",248)"> "dob":"24-apr"
  10. ]
  11. name:JagsInc
  12. employees:[{name=Jagan,sex=Male,dob=24-jul},{name=Satya,dob=24-apr}]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读