使用Jsonserializer将Object转换为自定义字符串格式

时间:2012-02-16 22:10:42

标签: serialization jackson

我想将对象转换为字符串表示形式,就像没有字段名

的JSON一样

例如以下类

public class Employee{
  private String name;
  private int age;
  private boolean married;
}

Employee = new objEmp();
objEmp.Name = "Mickey Mouse";
objEmp.age = 24;
objEmp.married = false;

上面的对象我想转换成字符串为     {“Mickey Mouse”,24,false}

并且此对象的数组必须类似于

[
   {"Mickey Mouse", 24, false}
  ,{"Robin Hood"  , 24, false}
]

我正在寻找一种可以针对每个Java对象(PO​​JO)不断应用的解决方案。 所以不希望覆盖每个对象或类似行上的解决方案的toString()方法

我更喜欢与jackson合作,因为我已准备好在Spring 3中将对象转换为JSON

我正在寻找一些可以帮助我实现这一目标的jackson ObjectMapper配置 如果没有,我可以创建自己的Object Mapper并在Spring View中使用它

感谢

1 个答案:

答案 0 :(得分:0)

我不认为ObjectMapper可以灵活地执行此操作,因为您尝试生成的实际上并不是JSON。

如何使用反射获取字段值列表,然后将其序列化为Object数组?

类似的东西:

List<Object> vals = new ArrayList<>();
for (Field field : Employee.class.getDeclaredFields()) {
    field.setAccessible(true);
    vals.add(field.get(emp));
}
ObjectMapper om = new ObjectMapper();
System.out.println(om.writeValueAsString(vals));

这会给你

["Mickey Mouse",24,false]

有方括号而不是花括号。这够好吗?