[英]How to expand all variables in java class
我想扩展 class 中的所有变量,然后将它们转换为 json 字符串。 例如:
class A {
int a1;
double a2;
public A(int a1, double a2) {
this.a1 = a1;
this.a2 = a2;
}
}
class B {
string b1;
A a;
public B(A a, string b1) {
this.a = a;
this.b1 = b1;
}
}
现在我有 B 级 object。
B b = new B(new A(1, 2.5), "test");
最后想把B转换成JSON,但是不是正常的JSON,我要展开所有变量
像这样:
{
"a1": 1,
"a2": 2.5,
"b1": "test"
}
不低于一
{
"a": {"a1": 1, "a2": 2.5},
"b1": "test"
}
我用的是Jackson,一般怎么实现。 我想我可以将所有元素放入一个 map,然后最后 writeValueAsString,但似乎不优雅
使用反射。 您可以在 class 中获取声明字段的数组,然后(通过递归)您可以从中创建 JSON 数据。
Object o=yourobject;
for(Field field : o.getClass().getFields()) {
String name=field.getName();
Class<?> type=field.getType();
Object value=field.get(o);//you can recursively parse 'value' as well
}
然后你可以直接在 json 中使用原始字段的值。
关于反射的有用帖子: 什么是反射以及它为什么有用?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.