Heim  >  Artikel  >  Java  >  Java-Code realisiert die gegenseitige Konvertierung zwischen Map und Object sowie zwischen Map und Json

Java-Code realisiert die gegenseitige Konvertierung zwischen Map und Object sowie zwischen Map und Json

高洛峰
高洛峰Original
2017-01-17 16:38:371373Durchsuche

Lassen Sie mich zunächst den Code zum Konvertieren von Karte und Objekt vorstellen.

Der spezifische Code ist wie folgt:

/**
* 使用org.apache.commons.beanutils进行转换
*/
class A {
public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception {
if (map == null)
return null;
Object obj = beanClass.newInstance();
org.apache.commons.beanutils.BeanUtils.populate(obj, map);
return obj;
}
public static Map<?, ?> objectToMap(Object obj) {
if(obj == null)
return null;
return new org.apache.commons.beanutils.BeanMap(obj);
}
}
/**
* 使用Introspector进行转换
*/
class B {
public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception {
if (map == null)
return null;
Object obj = beanClass.newInstance();
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor property : propertyDescriptors) {
Method setter = property.getWriteMethod();
if (setter != null) {
setter.invoke(obj, map.get(property.getName()));
}
}
return obj;
}
public static Map<String, Object> objectToMap(Object obj) throws Exception {
if(obj == null)
return null;
Map<String, Object> map = new HashMap<String, Object>();
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor property : propertyDescriptors) {
String key = property.getName();
if (key.compareToIgnoreCase("class") == 0) {
continue;
}
Method getter = property.getReadMethod();
Object value = getter!=null ? getter.invoke(obj) : null;
map.put(key, value);
}
return map;
}
}
/**
* 使用reflect进行转换
*/
class C {
public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception {
if (map == null)
return null;
Object obj = beanClass.newInstance();
Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) {
int mod = field.getModifiers();
if(Modifier.isStatic(mod) || Modifier.isFinal(mod)){
continue;
}
field.setAccessible(true);
field.set(obj, map.get(field.getName()));
}
return obj;
}
public static Map<String, Object> objectToMap(Object obj) throws Exception {
if(obj == null){
return null;
}
Map<String, Object> map = new HashMap<String, Object>();
Field[] declaredFields = obj.getClass().getDeclaredFields();
for (Field field : declaredFields) {
field.setAccessible(true);
map.put(field.getName(), field.get(obj));
}
return map;
}
<p>} </p><p>
</p><p>from:http://www.open-open.com/code/view/1423280939826</p>

Im Folgenden wird die gegenseitige Konvertierung zwischen Map und JSON vorgestellt

Kapitel Ein Codeteil

Map<String,Object> map = new HashMap<String,Object>();
map.put("method","json");
map.put("param",null);
map.put("time","2015-01-23 10:54:55");
ObjectMapper mapper = new ObjectMapper();
mapper.writeValueAsString(map);

Der zweite Codeteil

public static void readJson2Map(String json) {
ObjectMapper objectMapper = new ObjectMapper();
try {
//将json字符串转成map结合解析出来,并打印(这里以解析成map为例)
Map<String, Map<String, Object>> maps = objectMapper.readValue(
json, Map.class);
System.out.println(maps.size());
Set<String> key = maps.keySet();
Iterator<String> iter = key.iterator();
while (iter.hasNext()) {
String field = iter.next();
System.out.println(field + ":" + maps.get(field));
}
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
readJson2Map(json);

Der obige Inhalt wird Ihnen vom Herausgeber zur Verfügung gestellt. Der eingeführte Java-Code implementiert Kenntnisse über die gegenseitige Konvertierung zwischen Karte und JSON. Ich hoffe, dass er für alle hilfreich ist. Wenn Sie weitere Informationen wünschen, achten Sie bitte darauf zur chinesischen PHP-Website. Vielen Dank!

Weitere Java-Codes zur Implementierung der Karten- und Objektkonvertierung sowie Artikel zum Thema Karten- und Json-Konvertierung finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn