Jak wspomniał Dariusz, dobrze jest skorzystać z tego, że klasa Array
ma konstruktor akceptujący normalną tablicę.
Look, jeśli użyjesz domyślnego serializatora - Twoja tablica szeregowane do JSON wyglądałby następująco:
{"items":["item1","item2"],"size":2,"ordered":true}
to wyraźnie marnowanie miejsca, chyba że chcesz size
i ordered
pola mają być zachowane.
Proponuję zmienić sposób serializowania obiektu, aby wyglądał bardziej jak zwykła tablica, na drugim końcu - deserializacja może ponownie zbudować obiekt Array
.
Jeśli dodać następne parę serializatora i Deserializatora:
SimpleModule module = new SimpleModule();
module.addDeserializer(Array.class, new StdDelegatingDeserializer<>(
new StdConverter<Object[], Array>() {
@Override
public Array convert(Object[] value) {
return new Array(value);
}
}));
module.addSerializer(Array.class, new StdDelegatingSerializer(
new StdConverter<Array, Object>() {
@Override
public Object convert(Array value) {
return value.toArray();
}
}));
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(module);
będziesz miał przejrzystą konwersję pomiędzy tymi typami są potrzebne
więcej kodu, opublikować 'MyArray' klasę. – Dariusz
Jest to implementacja Arduino LibGDX: https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/utils/Array.java – tyrondis
również tam, gdzie deserializacja może być – valepu