我正在使用Gson将JSON对象数组解析为POJO。然后,我使用for-loop
将每个解析的对象发送到一个处理方法中。我似乎找不到一种方法来循环遍历单个对象并获取其中包含的值。
例如:
private Double thing1;
private Double thing2;
private Dboule thing3;
private void doSomething(MyObject myObj){
...myObject contains thing1, thing2, thing3 which are each doubles.
//I want to loop through the entire object,
//grab thing1's value and do something with it, then grab thing2's value... etc.
}
这个可容易实现吗?我已经试了一段时间了,但好像不能让它工作。我可以使用以下方法轻松地逐个获取它们:
myObj.thing1
但需要使用循环来完成,因为会有大量的值进入。
更新:这个方法几乎有效,但是它会先打印整个对象,然后才打印单个对象的值。我该如何让它直接打印单个值而不是先打印所有内容?
for(Field field : data.getClass().getDeclaredFields()){
Object value = field.get(data);
System.out.println(value);
}
输出:
[{"accel_1":0.012,"accel_2":0.125,"accel_3":0.03,"accel_4":0.012,"accel_5":0.125,"accel_6":0.03,"accel_7":0.012,"accel_8":0.125,"accel_9":0.03,"accel_10":0.012,"accel_11":0.125,"accel_12":0.03},{"accel_1":0.18,"accel_2":0.26,"accel_3":0.05,"accel_4":0.18,"accel_5":0.26,"accel_6":0.05,"accel_7":0.18,"accel_8":0.26,"accel_9":0.05,"accel_10":0.18,"accel_11":0.26,"accel_12":0.05},{"accel_1":0.06,"accel_2":0.02,"accel_3":0.03,"accel_4":0.06,"accel_5":0.02,"accel_6":0.03,"accel_7":0.06,"accel_8":0.02,"accel_9":0.03,"accel_10":0.06,"accel_11":0.02,"accel_12":0.03}]
0.012
0.125
0.03
0.012
0.125
0.03
0.012
0.125
0.03
0.012
0.125
0.03
[{"accel_1":0.012,"accel_2":0.125,"accel_3":0.03,"accel_4":0.012,"accel_5":0.125,"accel_6":0.03,"accel_7":0.012,"accel_8":0.125,"accel_9":0.03,"accel_10":0.012,"accel_11":0.125,"accel_12":0.03},{"accel_1":0.18,"accel_2":0.26,"accel_3":0.05,"accel_4":0.18,"accel_5":0.26,"accel_6":0.05,"accel_7":0.18,"accel_8":0.26,"accel_9":0.05,"accel_10":0.18,"accel_11":0.26,"accel_12":0.05},{"accel_1":0.06,"accel_2":0.02,"accel_3":0.03,"accel_4":0.06,"accel_5":0.02,"accel_6":0.03,"accel_7":0.06,"accel_8":0.02,"accel_9":0.03,"accel_10":0.06,"accel_11":0.02,"accel_12":0.03}]
0.18
0.26
0.05
0.18
0.26
0.05
0.18
0.26
0.05
0.18
0.26
0.05
[{"accel_1":0.012,"accel_2":0.125,"accel_3":0.03,"accel_4":0.012,"accel_5":0.125,"accel_6":0.03,"accel_7":0.012,"accel_8":0.125,"accel_9":0.03,"accel_10":0.012,"accel_11":0.125,"accel_12":0.03},{"accel_1":0.18,"accel_2":0.26,"accel_3":0.05,"accel_4":0.18,"accel_5":0.26,"accel_6":0.05,"accel_7":0.18,"accel_8":0.26,"accel_9":0.05,"accel_10":0.18,"accel_11":0.26,"accel_12":0.05},{"accel_1":0.06,"accel_2":0.02,"accel_3":0.03,"accel_4":0.06,"accel_5":0.02,"accel_6":0.03,"accel_7":0.06,"accel_8":0.02,"accel_9":0.03,"accel_10":0.06,"accel_11":0.02,"accel_12":0.03}]
0.06
0.02
0.03
0.06
0.02
0.03
0.06
0.02
0.03
0.06
0.02
0.03
以下是完整的方法:
private void convertJSON(String jsonString) throws IllegalArgumentException, IllegalAccessException {
Gson gson = new Gson();
Type data = new TypeToken<ArrayList<MyObject>>(){}.getType();
List<MyObject> fhd = gson.fromJson(jsonString, data);
for(MyObject current : fhd){
printIt(current);
}
}
public void printIt(MyObject data) throws IllegalArgumentException, IllegalAccessException{
for(Field field : data.getClass().getDeclaredFields()){
Object value = field.get(data);
System.out.println(value);
}
}
get()
方法的是什么?(data
是什么?) - GBlodgett} } - user8072194