JAVA json模式2 POJO
我必须创建一个REST响应。数据是json格式的,必须按照以下方式进行结构:JAVA json模式2 POJO,java,json,jackson,jsonschema,Java,Json,Jackson,Jsonschema,我必须创建一个REST响应。数据是json格式的,必须按照以下方式进行结构: { "device_id" : { "downlinkData" : "deadbeefcafebabe"} } 必须为设备id替换“设备id”,例如: { "333ee" : { "downlinkData" : "deadbeefcafebabe"} } 或 我使用了,结果如下: @JsonInclude(JsonInclude.Include.NON_NULL) @JsonPropertyOr
{
"device_id" : { "downlinkData" : "deadbeefcafebabe"}
}
必须为设备id替换“设备id”,例如:
{
"333ee" : { "downlinkData" : "deadbeefcafebabe"}
}
或
我使用了,结果如下:
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"device_id"
})
public class DownlinkCallbackResponse {
@JsonProperty("device_id")
private DeviceId deviceId;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
@JsonProperty("device_id")
public DeviceId getDeviceId() {
return deviceId;
}
@JsonProperty("device_id")
public void setDeviceId(DeviceId deviceId) {
this.deviceId = deviceId;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
“设备id”
})
公共类下行链路回调响应{
@JsonProperty(“设备id”)
专用设备ID设备ID;
@杰索尼奥雷
私有映射additionalProperties=new HashMap();
@JsonProperty(“设备id”)
公共设备ID getDeviceId(){
返回设备ID;
}
@JsonProperty(“设备id”)
公共无效设置设备ID(设备ID设备ID){
this.deviceId=deviceId;
}
@JsonAnyGetter
公共映射getAdditionalProperties(){
返回此。附加属性;
}
@JSONANYSETER
public void setAdditionalProperty(字符串名称、对象值){
this.additionalProperties.put(名称、值);
}
}
及
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
“下行链路数据”
})
公共类设备ID{
@JsonProperty(“下行链路数据”)
私有字符串下行链路数据;
@杰索尼奥雷
私有映射additionalProperties=new HashMap();
@JsonProperty(“下行链路数据”)
公共字符串getDownlinkData(){
返回下行链路数据;
}
@JsonProperty(“下行链路数据”)
公共无效设置下行链路数据(字符串下行链路数据){
this.downlinkData=下行链路数据;
}
@JsonAnyGetter
公共映射getAdditionalProperties(){
返回此。附加属性;
}
@JSONANYSETER
public void setAdditionalProperty(字符串名称、对象值){
this.additionalProperties.put(名称、值);
}
}
但基于此POJO,我无法设置设备ID:
DownlinkCallbackResponse downlinkCallbackResponse = new DownlinkCallbackResponse ();
DeviceId deviceId = new DeviceId();
deviceId.setDownlinkData(data);
downlinkCallbackResponse.setDeviceId(deviceId);
return new ResponseEntity<>(downlinkCallbackResponse, HttpStatus.OK);
DownlinkCallbackResponse DownlinkCallbackResponse=新的DownlinkCallbackResponse();
DeviceId DeviceId=新的DeviceId();
deviceId.setDownlinkData(数据);
下行链路CallbackResponse.setDeviceId(deviceId);
返回新的ResponseEntity(下行回调响应,HttpStatus.OK);
获取以下json字符串
{ "downlinkData" : "deadbeefcafebabe"}
创建json对象(Lib:java-json.jar)
将上面的json字符串放入json对象
obj.put("333ee", jsonString);
这将创建以下json字符串
{
"333ee" : { "downlinkData" : "deadbeefcafebabe"}
}
我希望这将对您有所帮助。:-) “我不能设置设备id”你这是什么意思???例如,POJO中没有设置程序来替换真实IDSee的设备id
JSONObject obj = new JSONObject();
obj.put("333ee", jsonString);
{
"333ee" : { "downlinkData" : "deadbeefcafebabe"}
}