gpt4 book ai didi

java - 针对特定场景从 POJO 生成 JSON

转载 作者:行者123 更新时间:2023-12-01 12:47:32 26 4
gpt4 key购买 nike

我已经使用 Jackson 和 JSONObject 生成了一个简单的 JSON - 这里一切都很好。我有一个特定的情况,我的 pojo 如下所示,我需要 JSON 是指定的格式。

package test;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "login")
public class LoginApi implements IRestBean {

private String username;
private String password;
private String sfSessionId;
private String sfServerUrl;

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getSfSessionId() {
return sfSessionId;
}

public void setSfSessionId(String sfSessionId) {
this.sfSessionId = sfSessionId;
}

public String getSfServerUrl() {
return sfServerUrl;
}

public void setSfServerUrl(String sfServerUrl) {
this.sfServerUrl = sfServerUrl;
}
}

我能够生成的 JSON 如下所示:

{
"username" : null,
"password" : null,
"sfSessionId" : null,
"sfServerUrl" : null
}

但这不是我的要求 - 我需要以下格式的 JSON,以便我的服务器接受它作为有效的 JSON:

{
"@type":"login",
"username":"username@domain.com",
"password":"password",
"sfSessionId":null,
"sfServerUrl":null
}

请帮忙。预先感谢!

最佳答案

使用类型向 POJO 添加私有(private)字段。

@XmlRootElement(name = "login")
public class LoginApi implements IRestBean {

...

@XmlAttribute(name = "type")
private String getJsonType() {
return "login";
}

...
}

请注意使用 XmlAttribute 自动将“@”附加到名称。

关于java - 针对特定场景从 POJO 生成 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24546285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com