您的位置:首页 > 编程语言 > Java开发

java实现对象转换为map、xml字符串转化为map、map转化为xml字符串

2017-10-16 20:54 573 查看
全栈工程师开发手册 (作者:栾鹏)

java教程全解

java实现map使用功能函数:对象转换为map、xml字符串转化为map

1、将对象的所有属性转化为map键值对

2、转换对象为map,并忽略某些属性

3、将只有根节点和一级子节点的xml字符串 转换为 Map

测试代码

当前类的名称为MapUtil
int a=10;
String b="das";
public static void main(String[] args) {

MapUtil ob=new MapUtil();
Map<String, Object> map=object2map(ob);   //将对象所有属性值转化为map
System.out.println(map);

Map<String, String> map1=object2map(ob,"a");  //将对象排数部分属性后转换为map
System.out.println(map1);

String xmlstr = "<book><title>Java实例一百例</title><page>基础知识篇</page></book>";  //将简单的只有两级的xml字符串转化为map
Map<String, String> map2=xml2map(xmlstr);
System.out.println(map2);

xmlstr = map2xml(map1);   //将map转化为xml
System.out.println(xmlstr);
}


将对象的所有属性转化为map键值对

public static Map<String,Object> object2map(Object object){
Map<String,Object> map = new HashMap<String, Object>();
Field[] fields = object.getClass().getDeclaredFields();
for (Field field : fields) {
Object obj;
try {
obj = field.get(object);
if(obj!=null){
map.put(field.getName(), obj);
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return map;
}


转换对象为map,并忽略某些属性

public static Map<String,String> object2map(Object object,String... ignore){
Map<String,String> tempMap = new LinkedHashMap<String, String>();
for(Field f : object.getClass().getDeclaredFields()){
if(!f.isAccessible()){
f.setAccessible(true);
}
boolean ig = false;
if(ignore!=null && ignore.length>0){
for(String i : ignore){
if(i.equals(f.getName())){
ig = true;
break;
}
}
}
if(ig){
continue;
}else{
Object o = null;
try {
o = f.get(object);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
tempMap.put(f.getName(), o==null?"":o.toString());
}
}
return tempMap;
}


只有根节点和一级子节点的xml字符串 转换为 Map

public static Map<String,String> xml2map(String xml){
try {
DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = documentBuilder.parse(new ByteArrayInputStream(xml.getBytes()));
Element element = document.getDocumentElement();
NodeList nodeList = element.getChildNodes();
Map<String, String> map = new LinkedHashMap<String, String>();
for(int i=0;i<nodeList.getLength();i++){
Element e = (Element) nodeList.item(i);
map.put(e.getNodeName(),e.getTextContent());
}
return map;
} catch (DOMException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}


Map转xml数据

public static String map2xml(Map<String,String> param){
StringBuffer sb = new StringBuffer();
sb.append("<xml>");
for (Map.Entry<String,String> entry : param.entrySet()) {
sb.append("<"+ entry.getKey() +">");
sb.append(entry.getValue());
sb.append("</"+ entry.getKey() +">");
}
sb.append("</xml>");
return sb.toString();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: