我正在调用一个web服务,该服务要求发送到它的数据以
{
"data": [
{
"field": "Pol_OwnerName",
"value": "Policy Owner Name Here"
},
{
"field": "Pol_Number",
"value": "123456789"
]
}
我正在使用POJO并使用@JSONProperty
注释:
@JsonProperty("Pol_OwnerName")
private String policyOwnerName;
@JsonProperty("Pol_Number")
private String policyNumber;
这将导致输出的形式为:
{
"Pol_OwnerName":"Policy Owner Name Here"
}
我如何使用jackson注释将我的值转换成所需的格式?
我认为您需要有单独的POJO来满足您的请求。您需要转换Policy类的内容以匹配所需的请求。您可以创建一个简单的WebServiceRequest
类,如下所示:
public class WebServiceRequest {
@JsonProperty("data")
private List<WebServiceRequestDataEntry> data;
public List<WebServiceRequestDataEntry> getData() { return data; }
public void setData(List<WebServiceRequestDataEntry> data) { this.data = data; }
}
这将包含一个WebServiceRequestDataEntry
元素的数组,如下所示:
public class WebServiceRequestDataEntry {
@JsonProperty("field")
private String field;
@JsonProperty("value")
private String value;
public WebServiceRequestDataEntry(String field, String value) {
this.field = field;
this.value = value;
}
public String getField() { return field; }
public void setField(String field) { this.field = field; }
public String getValue() { return value; }
public void setValue(String value) { this.value = value; }
}
然后可以尝试将策略类内容转换为请求负载。我假设你的课是这样的:
private static class Policy {
private final String policyOwnerName;
private final String policyNumber;
public Policy(String ownerName, String number) {
this.policyOwnerName = ownerName;
this.policyNumber = number;
}
public String getPolicyOwnerName() { return this.policyOwnerName; }
public String getPolicyNumber() { return this.policyNumber; }
}
我用这段代码对它进行了测试,它似乎能像预期的那样工作:
ObjectMapper objectMapper = new ObjectMapper();
WebServiceRequest webServiceRequest = new WebServiceRequest();
Policy[] policies = new Policy[] { new Policy("User1", "12345")};
List<WebServiceRequestDataEntry> data = new ArrayList<>();
for (Policy p : policies) {
data.add(new WebServiceRequestDataEntry("Pol_OwnerName", p.getPolicyOwnerName()));
data.add(new WebServiceRequestDataEntry("Pol_Number", p.getPolicyNumber()));
}
webServiceRequest.setData(data);
System.out.println(objectMapper.writeValueAsString(webServiceRequest));
这将打印以下输出:
{"data":[{"field":"Pol_OwnerName","value":"User1"},{"field":"Pol_Number","value":"12345"}]}
我正在我的gradle项目中使用。自从将添加到我的项目构建文件后,我在运行gradle项目时遇到了这个异常。这里是我的错误的堆栈跟踪。 我在我的类中使用了未使用的。但是我确实有和注释,它们使用两个类来序列化和反序列化我的到UTC格式的Json和从Json到Json的。我是第一次做这个序列化和反序列化,所以请给出任何建议。 这是我的分级文件代码:
我正在尝试使用Spring 4实现REST服务。 该应用程序使用Java 7构建,并在Tomcat 7上运行。 REST方法将返回JSON格式的customer对象。应用程序是注释驱动的。 Customer类有JAXB注释。Jackson罐子出现在课堂路径中。据我所知,Jackson将使用JAXB注释生成JSON。 客户类别: 我已经将REST服务类注释为@RestController(根据Spr
我正在尝试从Spring Boot应用程序的表单中获取用户输入。我需要做什么? 我实现了一个登录控制器使用注释来请求数据进行验证,但得到参数不存在的结果。 Login.html 我希望用户的电子邮件和密码才能登录,但得到 2019-07-27 20:30:54.393 WARN 2900---[nio-8080-exec-2].w.s.m.s.DefaultHandlerExceptionReso
如何使用杰克逊序列化此类 Jackson没有拾取@XmlElementWrapper@XmlSee还有注释,Jackson也没有映射@XmlRootElement注释。我使用的是Jackson 1.9.0。Jackson正在将元素放入列表中,但没有映射POJO类的根元素。 这里是示例方法。 它生成的响应是'{“response”:{“status”:0,“PBBeans”:[{“user_name
问题内容: 我从API获得以下JSON: 我正在使用Jackson库将此JSON反序列化为Java对象。我不想为对象创建一个特殊的类。我只是想以纯文本形式获得它。这样。 在我的POJO中,这应该作为字符串,即: 是否可以将JSON的此部分作为纯文本获取? 编辑: 我得到的错误 问题答案: 利用。 只需在POJO中为该字段输入以下内容,它便会为您工作。 凡如下: 给出以下输出:
问题内容: 我正在尝试使用Jackson JSON接受一个字符串,并确定它是否为有效JSON。谁能建议要使用的代码示例(Java)? 问题答案: 不知道您的用例是什么,但是应该这样做: