通过以下注释,我可以告诉Jackson使用public function show(Book $book)
{
if ($book) {
return new BookResource($book->load('ratings'));
} else {
return response()->json(['message' => 'Not found'], 404);
}
}
类对反序列化数据进行附加的后处理:
Converter
例如,以下转换器会将地图转换为自定义类型@JsonDeserialize(converter = MyConverter.class)
public MyConstrainedMap property;
:
MyConstrainedMap
我的问题是:如果无法进行转换该怎么办?抛出杰克逊的例外之一是有道理的,例如public static class MyConverter extends StdConverter<Map<String, Object>, MyConstrainedMap> {
@Override
public MyConstrainedMap convert(Map<String, Object> rawMap) {
// ... check values
return new MyConstrainedMap(rawMap);
}
}
,但已检查该异常,并且JsonMappingException
不允许任何检查的异常。
那我该怎么办。扔一个convert
?
答案 0 :(得分:0)
(答案很简单,但是由于我在Internet上找不到这个问题的任何内容,因此我认为我还是会分享它。)
是,如果无法转换某些内容,则抛出任何RuntimeException
是正确的做法。然后,该异常将由Jackson包裹在JsonMappingException
中,因此产生的行为与其他解析错误相同。