我需要在java中创建一些带有动态字段的JSON响应。以下是我想要返回的JSON响应的示例:
{
"success": true,
"completed_at": 1400515821,
"<uuid>": {
type: "my_type",
...
},
"<uuid>": {
type: "my_type",
...
}
}
“success”和“completed_at”字段易于格式化。如何格式化字段?什么是相应的java对象?
基本上我想使用2个java对象:
public class ApiResponseDTO {
private boolean success;
private DateTime completedAt;
...
}
和
public class AuthenticateResponseDTO extends ApiResponseDTO {
public List<ApplianceResponseDTO> uuids = new ArrayList<ApplianceResponseDTO>();
}
这些java对象与预期的JSON格式不对应。如果我可以改变JSON格式以获得列表,它将起作用,但我无法改变它。
非常感谢!
答案 0 :(得分:0)
您可以使用javax.json库,特别是JsonObjectBuilder和JsonArrayBuilder将数据按到JSON表单中。您可能希望嵌套一个toJson()方法的几个级别,它将为您提供您正在寻找的字符串表示,或者您想要的JsonObject / JsonArray。像这样:
JsonArray value = null;
JsonArrayBuilder builder = Json.createArrayBuilder();
for (ApplianceResponseDTO apr : uuids) {
builder.add(apr.toJson());
}
value = builder.build();
return value;