首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JAVA模式2 POJO

JAVA模式2 POJO
EN

Stack Overflow用户
提问于 2017-05-31 18:58:52
回答 1查看 561关注 0票数 1

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

代码语言:javascript
运行
复制
{
    "device_id" : { "downlinkData" : "deadbeefcafebabe"}
}

例如,"device_id“必须替换为DeviceId:

代码语言:javascript
运行
复制
{
    "333ee" : { "downlinkData" : "deadbeefcafebabe"}
}

代码语言:javascript
运行
复制
{
    "9886y" : { "downlinkData" : "deadbeefcafebabe"}
}

我使用了http://www.jsonschema2pojo.org/,结果是:

代码语言:javascript
运行
复制
@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);
    }

}

代码语言:javascript
运行
复制
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"downlinkData"
})
public class DeviceId {

    @JsonProperty("downlinkData")
    private String downlinkData;
    @JsonIgnore
    private Map<String, Object> additionalProperties = new HashMap<String, Object>();

    @JsonProperty("downlinkData")
    public String getDownlinkData() {
    return downlinkData;
    }

    @JsonProperty("downlinkData")
    public void setDownlinkData(String downlinkData) {
    this.downlinkData = downlinkData;
    }

    @JsonAnyGetter
    public Map<String, Object> getAdditionalProperties() {
    return this.additionalProperties;
    }

    @JsonAnySetter
    public void setAdditionalProperty(String name, Object value) {
    this.additionalProperties.put(name, value);
    }

}

但是基于这个POJO,我不能设置deviceID:

代码语言:javascript
运行
复制
DownlinkCallbackResponse downlinkCallbackResponse = new DownlinkCallbackResponse ();

        DeviceId deviceId = new DeviceId();
        deviceId.setDownlinkData(data);     
        downlinkCallbackResponse.setDeviceId(deviceId);

        return new ResponseEntity<>(downlinkCallbackResponse, HttpStatus.OK);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-01 05:24:07

获取以下json字符串

代码语言:javascript
运行
复制
 { "downlinkData" : "deadbeefcafebabe"}

创建json对象( Lib : java-json.jar )

代码语言:javascript
运行
复制
 JSONObject obj = new JSONObject();

将上面的json字符串放入json对象中。

代码语言:javascript
运行
复制
 obj.put("333ee", jsonString);

,它将创建以下json字符串

代码语言:javascript
运行
复制
{

"333ee" : { "downlinkData" : "deadbeefcafebabe"}
}

我希望这能帮到你。:-)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44292729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档