Skip to content
Advertisement

Add contents of Array List to a JSON Array: Java

I have an Array List called getFields:

ArrayList getFields = new ArrayList(uniqueFields);

This array list logs out the following:

[{"warehouse":{"editableField":"false"}}, {"documentNo":{"editableField":"true"}}]

I need to convert getFields into a JSON Array called jsArray, so I have done this:

JSONArray jsArray = new JSONArray();
jsArray.put(getFields);

jsArray logs out the following:

[[{"warehouse":{"editableField":"false"}},{"documentNo":{"editableField":"true"}}]]

The problem is, I do not want jsArray to have a nested array (i.e. I don’t want it to have double square brackets). I want it to be like this:

[{"warehouse":{"editableField":"false"}},{"documentNo":{"editableField":"true"}}]

How can I convert getFields into jsArray without the double brackets? Have tried converting to a string but then I get backslashes. Any help would be appreciated. Thanks.

Advertisement

Answer

getFields.forEach(jsArray::put);  // java 8+

You need to iterate on getFields and put the elements one by one.


// java 8 or below
for (int i = 0; i < getFields.size(); i++) {
    jsArray.put(getFields.get(i));
}
User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement