Java Genson属性读取错误
我使用json模板创建了一个类,并使用Genson将我的json映射到基于Jersey的WS。 这是我的“json类”的第一行: 我班上也有能手和二传手 我创建了一个restfull Ws来处理post请求,并尝试使用firefox RESTClient插件发送jsons对象 这是我尝试发送的json对象的第一行:Java Genson属性读取错误,java,json,web-services,genson,Java,Json,Web Services,Genson,我使用json模板创建了一个类,并使用Genson将我的json映射到基于Jersey的WS。 这是我的“json类”的第一行: 我班上也有能手和二传手 我创建了一个restfull Ws来处理post请求,并尝试使用firefox RESTClient插件发送jsons对象 这是我尝试发送的json对象的第一行: { "public_key": "7f566499549fc9e6d9cc69ca3b10d5f5", "template": "billingo", "si
{
"public_key": "7f566499549fc9e6d9cc69ca3b10d5f5",
"template": "billingo",
"signature": "9273882e8b3bc7f57e1ef3bc10041bc4bf9d835c152a1e0b810b77b3d51864ad",
"due_date": "2015-10-30",
...
...}
我的WS-Post处理程序方法如下所示:
@POST
@Path("/invoice")
@Consumes("application/json")
@Produces("application/json")
public String createInvoice(CreateInvoiceBean newBillingoInvoice) {
LOG.info("invoicenum:. " + newBillingoInvoice.getDueDate());
return newBillingoInvoice.getDueDate();
}
我的请求到达,调用了createInvoice()
方法,但如果我调用newbillingovoice.getDueDate()
它将返回null,但当我调用newbillingovoice.getSignature()
时,它将返回我在请求json中发送的值。。等等如果我调用newbillingovoice.getXY()
返回null
如果我调用newbillingovoice.getOtherSomething()代码>返回值。。等等
我的问题是,在同一个对象中,一个属性是null
,而另一个属性不是null
,这怎么可能呢?当我创建请求时,我设置了所有属性,其中没有一个是null
请帮帮我!
谢谢大家! 我想这是因为这个名字。在json中,我们可以看到您在单词边界处使用大写下划线插入。比如到期日而不是到期日。我假设代码中的属性遵循通常的java命名转换,使用大写字母
一种解决方案是使用@JsonProperty注释那些set和get方法,将名称从“dueDate”更改为“due_date”
顺便说一句,生成的代码不是针对Genson的,JsonPropertyOrder不是Genson注释
@POST
@Path("/invoice")
@Consumes("application/json")
@Produces("application/json")
public String createInvoice(CreateInvoiceBean newBillingoInvoice) {
LOG.info("invoicenum:. " + newBillingoInvoice.getDueDate());
return newBillingoInvoice.getDueDate();
}