3

I want to concat multiple json object.

I have two json like this

{"message":"test","status":"0"}

and this

{"message":"test-2","status":"1"}

result must be

[{"message":"test","status":"0"},{"message":"test-2","status":"1"}]

How can I do this in Java ?

Tolgay Toklar
  • 4,151
  • 8
  • 43
  • 73

3 Answers3

5

You can easily use JSONObject.toString() and concatenate the strings easily e.g

String x = "[" + obj1.toString() "," + obj2.toString() + "]";

or

StringBuilder newStr = new StringBuilder() ;
newStr.append("[").append(obj1.toString()).append(",").append(obj2.toString());
3

Do something like this:

List<String> array = new ArrayList<String>();
array.add("{\"message\":\"test\",\"status\":\"0\"}");
array.add("{\"message\":\"test-2\",\"status\":\"1\"}");
array.toString();

If you want to user support for JSON object in Java, consider using Gson:

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class Main {

    public static void main(String[] args) {
        JsonObject json1 = (JsonObject) new JsonParser().parse("{\"message\":\"test\",\"status\":\"0\"}");
        JsonObject json2 = (JsonObject) new JsonParser().parse("{\"message\":\"test-2\",\"status\":\"1\"}");
        JsonArray array = new JsonArray();
        array.add(json1);
        array.add(json2);
        System.out.println(array.toString());
    }
}

This would give you what you want this time using objects.

shlomi33
  • 1,458
  • 8
  • 9
0
private static void concatJSON() throws IOException, InterruptedException {

JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader(new File(Main.class.getResource("/file/user.json").toURI())));

JSONObject jsonObj = (JSONObject) obj; //usernameJsonObj

String [] values = {"0.9" , Date.from(Calendar.getInstance().toInstant()).toLocaleString()},
        innermost = {"Accomplished", "LatestDate"}, 
        inner = {"Lesson1", "Lesson2", "Lesson3", "Lesson4"};
String in = "Jayvee Villa";

JSONObject jo1 = new JSONObject();
for (int i = 0; i < innermost.length; i++)
    jo1.put(innermost[i], values[i]);

JSONObject jo2 = new JSONObject();
for (int i = 0; i < inner.length; i++)
    jo2.put(inner[i], jo1);

JSONObject jo3 = new JSONObject();
jo3.put(in, jo2);

String merger = jsonObj.toString().substring(0, jsonObj.toString().length()-1) + "," +jo3.toString().substring(1);

System.out.println(merger);
FileWriter pr = new FileWriter(file);
pr.write(merger);
pr.flush();
pr.close();
}
ArK
  • 20,698
  • 67
  • 109
  • 136