當我添加測驗 JsonObjects 串列時,只有最后一個 JsonObject 被添加到 JsonArray。我不明白為什么,因為我正在關注 oracle 的檔案。https://docs.oracle.com/javaee/7/api/javax/json/JsonArray.html
來自名為 TestRun 的類的方法
public JsonObject convertToJSONObject() {
return Json.createObjectBuilder()
.add("name", name)
.add("value", value)
.add("timestamp", convertZonedDateTime())
.build();
}
public JsonArray convertToJSONArray(JsonObject object) {
return Json.createArrayBuilder()
.add(object)
.build();
}
Main (注意:我使用 faker 來生成隨機資訊)
TestRun testRun;
Faker faker = new Faker(); //Faker to generate random level_name
JsonArray jsonArray = null;
for (int i = 0; i < 2; i ) {
testRun = new TestRun(faker.name().firstName(), faker.number().numberBetween(1, 200));
JsonObject object = testRun.convertToJSONObject();
jsonArray = testRun.convertToJSONArray(object);
}
System.out.println(jsonArray);
uj5u.com熱心網友回復:
您需要創建一個JsonArrayBuilder內部 for 回圈,而不是在每個步驟中創建 JsonArray。然后在 for 回圈之外構建構建器,例如:
JsonArrayBuilder arrayBuilder = null;
for (int i = 0; i < 2; i ) {
testRun = new TestRun(faker.name().firstName(), faker.number().numberBetween(1, 200));
JsonObject jsonObject = testRun.convertToJSONObject();
if (arrayBuilder == null) {
arrayBuilder = Json.createArrayBuilder().add(jsonObject);
} else {
arrayBuilder = arrayBuilder.add(jsonObject);
}
}
jsonArray = arrayBuilder.build();
uj5u.com熱心網友回復:
測驗運行.java
import javax.json.Json;
import javax.json.JsonObject;
import java.time.ZonedDateTime;
public class TestRun {
private String name;
private Integer value;
private ZonedDateTime timestamp;
public TestRun(String name, Integer value, ZonedDateTime timestamp) {
this.name = name;
this.value = value;
this.timestamp = timestamp;
}
public JsonObject convertToJSONObject() {
return Json.createObjectBuilder()
.add("name", name)
.add("value", value)
.add("timestamp", convertZonedDateTime())
.build();
}
private String convertZonedDateTime() {
return timestamp.toString(); // replace with yours code
}
}
類與main方法:
import com.github.javafaker.Faker;
import javax.json.Json;
import javax.json.JsonArrayBuilder;
import javax.json.JsonObject;
import java.time.ZonedDateTime;
public class FakerExample {
public static void main(String[] args) {
Faker faker = new Faker();
JsonArrayBuilder jsonArrayBuilder = Json.createArrayBuilder();
for (int i = 0; i < 2; i ) {
var testRun = new TestRun(faker.name().firstName(), faker.number().numberBetween(1, 200), ZonedDateTime.now());
JsonObject object = testRun.convertToJSONObject();
jsonArrayBuilder.add(object);
}
System.out.println(jsonArrayBuilder.build());
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/496073.html
上一篇:getDefaultInstance和javax.mail.Session、java.io.InputStream的問題
下一篇:java-類屬性型別隨繼承而變化
