I have a nested json and one of its elements is an integer array.
I would like to get output like this:
{ "arguments" : [ { "array": [1, 2, 3] } ] }
but I keep receiving array in quotes like this:
{ "arguments" : [ { "array" : "[1, 2, 3]" } ] }
Here is my code:
import javax.json.Json;
import javax.json.JsonArrayBuilder;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
JsonArrayBuilder arguments = Json.createArrayBuilder().add(Json.createObjectBuilder().add("array", Arrays.toString(new int[] {1,2,3})));
String json = Json.createObjectBuilder().add("arguments", arguments).build().toString();
System.out.println(json);
}
}
EDIT
Thanks to Jon Skeet, I managed to do this
int[] ints = {1, 2, 3};
JsonArrayBuilder arrayBuilder = Json.createArrayBuilder();
for (int i : ints) {
arrayBuilder.add(i);
}
JsonArrayBuilder arguments =
Json.createArrayBuilder().add(Json.createObjectBuilder().add("array", arrayBuilder.build()));
Although i thought there may be a better looking way, thanks
build()first.Arrays.toString(new int[] {1,2,3})will do that for you - try something else.addonce. That will create an array with one element. You want an array with three elements, so you need to calladdthree times.