Как объединить / добавить JsonObject в JsonArray - PullRequest
0 голосов
/ 15 октября 2019

Учитывая следующий код, который вызывается по-разному в коде, а затем записывается в файл (отдельный метод), мне просто нужно добавить следующее значение в массив. Вероятно, это простой вопрос о коллекциях, но я не был уверен, существует ли для этого специальный способ Gson:

public static void metricAsJSON(String testName, long testTime) {

    Date date = new Date();
    Timestamp ts = new Timestamp(date.getTime());

    JSONObject obj = new JSONObject();

    obj.put("testname", testName);
    obj.put("Duration", testTime);
    obj.put("Timestamp", ts.toString());

    Gson gson = new GsonBuilder().setPrettyPrinting().create();
    JsonParser jp = new JsonParser();
    JsonElement je = jp.parse(obj.toJSONString());
    jsoncontent = gson.toJson(je);

    JsonArray jsonArray = new JsonArray();
    jsonArray.add(je);

    jsoncontent = gson.toJson(jsonArray);

}

public static JsonArray appendMetricAsJson(String jsoncontent){

    JsonArray jsonContentList = new JsonArray();
    jsonContentList.add(jsoncontent);        
    return jsonContentList;

    FileWriter fw1 = new FileWriter(f1, true);

    PrintWriter pw1 = new PrintWriter(fw1);
    if (f1.exists() && f1.isFile()) {
        pw1.println(jsonContentList);
        pw1.flush();
        pw1.close();
        fw1.close();
    }
}

Токовый выход:

[
  {
    "Duration": 30,
    "testname": "Shopping link click to dropdown display time:",
    "Timestamp": "2019-10-15 09:47:53.804"
  }
]

Требуемый выход:

[
  {
    "Duration": 30,
    "testname": "Shopping link click to dropdown display time:",
    "Timestamp": "2019-10-15 09:45:13.334"
  },
  {
    "Duration": 16,
    "testname": "Clothing link click to dropdown display time",
   "Timestamp": "2019-10-15 09:44:34.356"
  },
  {
    "Duration": 24,
    "testname": "Toys link click to dropdown display time",
    "Timestamp": "2019-10-15 09:46:33.453"
  },
  {
    "Duration": 34,
    "testname": "Electrics link click to dropdown display time",
    "Timestamp": "2019-10-15 09:47:53.566"
  }
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...