【发布时间】:2019-01-30 12:07:07
【问题描述】:
我在entityManager.find 方法的响应中得到对象。
我想通过传递键从该对象中获取值。但我没有得到任何成功。
例如:-
我的实体:-
@entity
class Test (){
public Long id;
public String name ;
public String descr;
}
我在以下代码的响应中得到对象。
`Object obj=`entitymanager.find(classname,id);
注意:- 我不能直接使用实体的对象而不是对象,因为输入类名可以动态传递,这就是我在 Object 中进行响应的原因。
现在我想通过传递键从对象中获取值
类似obj.getvalue("id");
我尝试了以下方法来完成它:-
Map<String, Object> user = (Map<String, Object>)obj;-
使用json简单解析器解析。
JSONParser parser = new JSONParser();JSONObject jsonObject =parser.parse(obj.toString());
但没有获得任何成功。
请帮帮我。
【问题讨论】:
-
你不能将对象转换为它的实际类吗?由于您提供了类名,因此您应该知道可以投射到哪个类。
-
@Sebastian 我提到'Test'实体只是为了示例,我可以在 find 方法中动态传递类名,这就是我有超过 100 个实体的问题,我可以动态传递实体名称
-
如果动态传递类名,怎么知道返回的对象是否有想要的字段?
-
@Sebastian 在按键获取值之前,首先我使用 REFLECTION api 获取所有字段列表,然后传递这些字段。感谢您的反馈 :) 我能够通过使用反射和对象映射器解决该问题。
标签: java json reflection entitymanager jsonparser