This commit is contained in:
phact 2023-08-29 22:25:56 -04:00
parent 68b7f758f5
commit 179bc7cb9d
2 changed files with 19 additions and 20 deletions

View File

@ -42,10 +42,9 @@
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.fasterxml.jackson.core</groupId> <groupId>com.google.code.gson</groupId>
<artifactId>jackson-core</artifactId> <artifactId>gson</artifactId>
<version>2.15.2</version> <version>2.10.1</version>
<scope>compile</scope>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@ -16,15 +16,16 @@
package io.nosqlbench.adapter.http.core; package io.nosqlbench.adapter.http.core;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.nosqlbench.adapter.http.errors.InvalidResponseBodyException; import io.nosqlbench.adapter.http.errors.InvalidResponseBodyException;
import io.nosqlbench.adapter.http.errors.InvalidStatusCodeException; import io.nosqlbench.adapter.http.errors.InvalidStatusCodeException;
import io.nosqlbench.adapters.api.activityimpl.uniform.flowtypes.CycleOp; import io.nosqlbench.adapters.api.activityimpl.uniform.flowtypes.CycleOp;
import io.nosqlbench.adapters.api.activityimpl.uniform.flowtypes.RunnableOp; import io.nosqlbench.adapters.api.activityimpl.uniform.flowtypes.RunnableOp;
import org.apache.logging.log4j.core.tools.picocli.CommandLine; import org.apache.logging.log4j.core.tools.picocli.CommandLine;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.net.http.HttpClient; import java.net.http.HttpClient;
import java.net.http.HttpRequest; import java.net.http.HttpRequest;
@ -95,25 +96,24 @@ public class HttpOp implements CycleOp {
} }
} }
try { try {
ObjectMapper mapper = new ObjectMapper(); JsonParser parser = new JsonParser();
JsonNode json = mapper.readTree(response.body()); JsonObject json = parser.parse(response.body()).getAsJsonObject();
if (json.get("hits") == null) { if (!json.has("hits") || !json.getAsJsonObject("hits").has("hits")) {
return null; return null;
} }
Iterable<JsonNode> hits = json.get("hits").get("hits"); JsonArray hits = json.getAsJsonObject("hits").getAsJsonArray("hits");
// get length from hits iterator
int count = (int)StreamSupport.stream(Spliterators.spliteratorUnknownSize(hits.iterator(), 0), false).count();
int count = hits.size();
int[] keys = new int[count]; int[] keys = new int[count];
int i = 0; int i = 0;
for (JsonNode hit : hits) { for (JsonElement element : hits) {
keys[i]= hit.get("_source").get("key").asInt(); JsonObject hit = element.getAsJsonObject();
keys[i] = hit.getAsJsonObject("_source").get("key").getAsInt();
i++; i++;
} }
return keys; return keys;
} catch (JsonProcessingException e) { } catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }