我一直在我自己的小項目中使用json協議的傑克遜實現,現在它已經很好用了,直到我決定(第一次)序列化一個無國籍的對象。使用傑克遜序列化無狀態對象時的異常Json
我知道這可能聽起來很奇怪,我爲什麼要發送無狀態對象?我序列化的是對服務器的請求,而這個特定的服務器不包含任何字段,只是在服務器端編寫指令。我的模型可以採取任何ClientRequest實現並將其稱爲perform()方法。即使請求沒有字段,我也希望它能夠正常工作。
代碼如下所示:
public class GetWallInputsRequest implements ClientRequest<List<WallInput>>
{
@JsonCreator public GetWallInputsRequest()
{
}
@Override public ServerResponse<List<WallInput>> perform()
{
return new WallMessageResponse(Wall.WALL.getInputs());
}
}
我得到JsonMappingException:未找到類GetWallInputsRequest串行器。 谷歌不幫我,這讓我想知道我是不是愚蠢。可悲的是我沒有看到一個辦法。
我解決了它後,大量的蠻力嘗試不同的事情。而通過解決它,我的意思是沒有想出來,但使其工作。通過添加該行:
@JsonAutoDetect(getterVisibility=JsonAutoDetect.Visibility.NONE)
上面的類聲明它似乎工作。爲什麼這是必要的我不知道,但現在它發送一個空的JSON字符串,而不是崩潰。
歡迎StackOverflow上。如果您已經解決了您的問題,我們感謝您將解決方案作爲答案發布,然後接受您自己的答案。這可以防止您的問題出現在未解答的問題列表中。 –
@Bystam - 你有問題嗎? –