Java開発データ型変換

Javaエンティティークラスをマップに変換する

注:この小さなツールクラスは、Javaオブジェクトの直接値のプロパティをマップにマップできますが、子オブジェクト構造のすべてのプロパティ(これが必要です)のマップに失敗し、親クラスから継承されたobjのプロパティのマップに失敗します。継承された属性はマップにマップする必要があり、手動で追加する必要があります。

public class MapUtils
{
   public static Map<String,Object> ConvertObjToMap(Object obj){
		  Map<String,Object> reMap = new HashMap<String,Object>();
		  if (obj == null) 
		   return null;
		  Field[] fields = obj.getClass().getDeclaredFields();
		  try {
		   for(int i=0;i<fields.length;i++){
		    try {
		     Field f = obj.getClass().getDeclaredField(fields[i].getName());
		     f.setAccessible(true);
		           Object o = f.get(obj);
		           reMap.put(fields[i].getName(), o);
		    } catch (NoSuchFieldException e) {
		     // TODO Auto-generated catch block
		     e.printStackTrace();
		    } catch (IllegalArgumentException e) {
		     // TODO Auto-generated catch block
		     e.printStackTrace();
		    } catch (IllegalAccessException e) {
		     // TODO Auto-generated catch block
		     e.printStackTrace();
		    }
		   }
		  } catch (SecurityException e) {
		   // TODO Auto-generated catch block
		   e.printStackTrace();
		  } 
		  return reMap;
		 }
}

テスト呼び出し:objTempはJavaクラスです:

//调用实例:
Map<String, Object> mapTemp = MapUtils.object2Map(objTemp);

JavaマップをJsonObjectに変換

私はfastjsonを使用していますが、fastjsonはJSONObject.parseObject(javaObject)を直接呼び出してJavaオブジェクトをjsonに変換するため、javaObjectが子オブジェクトをネストしている場合、現時点では変換結果がわかりにくいため、最初にオブジェクトをMapに転送します。 jsonへ(少し冗長。)

JSONObject jsonObject = new JSONObject(mapTemp);

JsonからJavaエンティティオブジェクトへ

public class MyJavaClass
{
    //TODO 
}

//调用实例:
String jsonStr = "{}";
MyJavaClass myjavaClass = JSON.parseObject(jsonStr, MyJavaClass.class);

JSONObjectをエンティティークラスに変換します

次のように、私はfastjsonを使用してJSONObjectをJavaクラスMyJavaClassの書き込み形式に変換します。

public class MyJavaClass
{
    //TODO
}

void test()
{
   JSONObject jsonObj;
   MyJavaClass info = JSONObject.toJavaObject(jsonObj,MyJavaClass.class);
}

JSONObjectをマップに変換します。

以下は、myJsonObjのJSONObjectをMap <String、Object>に変換するものです。

JSONObject myJsonObj = null;//TODO 
Map<String, Object> itemMap = JSONObject.toJavaObject(myJsonObj, Map.class);

おすすめ

転載: blog.csdn.net/Stephanie_1/article/details/108711584