わかりましたので、これを少しいじっています。次のようなオブジェクトを保持するjson配列を取得しています。[{
"id": "1",
"name": "some name",
"url": "some url",
"active": true
}, {
"id": "2",
"name": "some other name",
"url": "some other url",
"active": true
}
]"
今、私はその配列を、配列内のオブジェクトのリストを保持する Java オブジェクトにデシリアライズできるようにしたいと考えています。次のようなカスタム デシリアライザーを作成しました。
public class ListSerializer extends JsonDeserializer<List<Provider>>{
private static final long serialVersionUID = 9114152571639338391L;
@Override
public List<Provider> deserialize(JsonParser jsonParser,
DeserializationContext arg1) throws IOException, JsonProcessingException {
// TODO Auto-generated method stub
final ObjectCodec objectCodec = jsonParser.getCodec();
final JsonNode listOrObjectNode = objectCodec.readTree(jsonParser);
final List<Provider> result = new ArrayList<Provider>();
for (JsonNode node : listOrObjectNode) {
result.add(objectCodec.treeToValue(node, Provider.class));
}
return result;
}
}
リストを保持するクラスは次のようになります。
public class ProviderList {
@JsonDeserialize(using = ListSerializer.class)
private List<Provider> providerList;
public List<Provider> getProviderList() {
return providerList;
}
public void setProviderList(final List<Provider> providerList) {
this.providerList = providerList;
}
}
さて、これがばかげたアプローチかもしれないことはわかっていますが、簡単に言えば、これは必要なだけです。このエラーが発生するため、明らかに何か間違ったことをしています:
[ソース: [{"id":"1","name":"Posttrack","url":"http:\ dev.posttrack.com","アクティブ":true},{"id":"2","名前":"トラックユニット","url":"http:\dev.trackunit.com","アクティブ":真実}]; 行: 1、列: 1]
だから私の質問。これは可能ですか?ここでどこが間違っているのですか。
ありがとうございます!