Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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 Genson属性读取错误_Java_Json_Web Services_Genson - Fatal编程技术网

Java Genson属性读取错误

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

我使用json模板创建了一个类,并使用Genson将我的json映射到基于Jersey的WS。 这是我的“json类”的第一行:

我班上也有能手和二传手

我创建了一个restfull Ws来处理post请求,并尝试使用firefox RESTClient插件发送jsons对象

这是我尝试发送的json对象的第一行:

{
    "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();
 }