Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA json模式2 POJO_Java_Json_Jackson_Jsonschema - Fatal编程技术网

JAVA json模式2 POJO

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

我必须创建一个REST响应。数据是json格式的,必须按照以下方式进行结构:

{
    "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"}
}