У меня точно такая же ситуация, но на Java.
public static class OrderBasketTypeAdapter implements JsonDeserializer<OrderDto.Basket> {
@Override
public OrderDto.Basket deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
Set<Map.Entry<String, JsonElement>> entries = json.getAsJsonObject().entrySet();
OrderDto.Basket result = new OrderDto.Basket();
for (Map.Entry<String, JsonElement> entry : entries) {
OrderDto.Basket.BasketItemDto item = context.deserialize(entry.getValue(), OrderDto.Basket.BasketItemDto.class);
result.items.add(item);
}
return result;
}
}