package com.silverforge.elasticsearchrawclient.elasticFacade.mappers; import com.fasterxml.jackson.databind.ObjectMapper; import com.silverforge.elasticsearchrawclient.elasticFacade.OperationType; import com.silverforge.elasticsearchrawclient.model.BulkResultItem; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class BulkResultParser { private static final ObjectMapper mapper = new ObjectMapper(); public static List<BulkResultItem> getResults(String bulkResponseJson) { ArrayList<BulkResultItem> retValue = new ArrayList<>(); try { JSONObject json = new JSONObject(bulkResponseJson); JSONArray items = json.getJSONArray("items"); for (int i = 0; i < items.length(); i++) { JSONObject actionItemResult = items.getJSONObject(i); JSONArray names = actionItemResult.names(); if (names.length() > 0) { String bulkActionType = names.getString(0); JSONObject actionValue = actionItemResult.getJSONObject(bulkActionType); BulkResultItem bulkResultItem = mapper.readValue(actionValue.toString(), BulkResultItem.class); bulkResultItem.setOperation(OperationType.getOperationType(bulkActionType)); retValue.add(bulkResultItem); } } } catch (JSONException | IOException e) { e.printStackTrace(); } return retValue; } }