我需要使用JSON
和Jersey client 1.19
发送已经采用genson 1.3
格式的字符串
Client.create().resource(path).webResource.type(MediaType.APPLICATION_JSON_TYPE)
.accept(MediaType.APPLICATION_JSON_TYPE).put(ClientResponse.class, jsonAsString)
这个问题是客户端正在解析字符串,我需要它按原样发送。
我发送了{ "name":"Foo" }
之类的内容,客户端正在将其转换为"{ \"name\":\"Foo\" }"
。如果我将类型更改为PLAIN_TEXT
,则会正确发送请求,但我需要将其发送为application/json
。
答案 0 :(得分:1)
所以是的,Genson会尝试将您的字符串编码为文字json字符串。在这种情况下,它可能不是你想要的,但更一般地说它是人们所期望的:将java字符串序列化为json字符串。
我看到的解决方案是扩展GensonJsonConverter并覆盖isWritable以在输入类型为字符串时返回false。然后注册它。这应该有用。
我已打开this issue,因此可以将其添加为更灵活的功能。
答案 1 :(得分:0)
尝试将MediaType.APPLICATION_JSON_TYPE
更改为MediaType.APPLICATION_JSON
http://examples.javacodegeeks.com/enterprise-java/rest/jersey/json-example-with-jersey-jackson/