小编Tam*_*rfi的帖子

收集杰克逊的未知属性

我正在使用Jackson从JSON创建Java对象.假设我有一个像这样的JSON字符串:

{"a":"a", "b":"b", "c":"c"}
Run Code Online (Sandbox Code Playgroud)

和这样的pojo:

@JsonIgnoreProperties(ignoreUnknown = true)
public class A {

    private String a;
    private String b;

    // ...
}
Run Code Online (Sandbox Code Playgroud)

所以c显然是一个未知的属性 - 它将被遗漏.我在想,有什么方法可以记录c未知并被忽略了吗?

java jackson

10
推荐指数
2
解决办法
3474
查看次数

Resttemplate form/multipart:POST中的图像+ JSON

我正在尝试调用休息ws(使用resttemplate),它接受一个图像和一些JSON.但是,我似乎无法让它运行.

相关代码如下:

    HttpHeaders header = new HttpHeaders();
    header.setContentType(MediaType.MULTIPART_FORM_DATA);

    MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
    ByteArrayResource bytes = new ByteArrayResource(pictureData) {
        @Override
        public String getFilename() {
            return pictureName;
        }
    };
    map.add("x", x);
    map.add("file", bytes);

    HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity(map, header);
    String response =  restTemplate.postForObject(UPLOAD_URL, requestEntity, String.class);
Run Code Online (Sandbox Code Playgroud)

其中x是一些带有所有必需JSON注释的POJO(我从另一个Web服务接收它,该部分工作正常).

但是,这件事告诉我:HttpMessageNotWritableException:无法写入请求:没有为x找到合适的HttpMessageConverter.

如果我将ByteArrayResource更改为byte [],那么我会收到400 Bad Request.如果我将内容类型更改为JSON,则无法将ByteArrayResource序列化为JSON:

Caused by: org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: No serializer found for class java.io.ByteArrayInputStream and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference …
Run Code Online (Sandbox Code Playgroud)

java rest spring resttemplate

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×2

jackson ×1

rest ×1

resttemplate ×1

spring ×1