当我添加测试JsonObject列表时,只有最后一个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);
测试运行。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
}
}
使用主方法初始化:
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());
}
}
您需要在for循环内部创建一个JsonArrayBuilder,而不是在每个步骤创建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();
问题内容: 我今天在这个主题上搜索了很多。但是我找不到它,如何将JSONArray添加到JSONObject? 因为每次执行此操作都会收到此错误:Stackoverflow 我收到此错误: 我想要的JSON:只有最后一个JsonArray出问题了: ,“ vloer”:[{formaat:’vierkant10x15’tegels:[{naam:’‘,imgThumb:’/bla/bla.png’
问题内容: 如何将所有从mysql_query的行添加到mysql_fetch_array()?我希望能够尽可能有效地执行此操作,因为它可以处理很多行。 问题答案: 最常见的方式: 如文档中的示例所示。
问题内容: 大家好,我不是Json最好的。我试图通过循环将一些json对象添加到json数组中,但是问题是每次涉及到循环时,新数据也会遍历数组中的先前数据。这是我的代码: 给定X.size = 2的示例 我希望我的例子足够清楚。 如果有人能在这里帮助我,我将不胜感激。 问题答案: 您需要在循环的每次迭代中创建一个新的引用: 否则,您将一遍又一遍地更新同一实例,并将对同一对象的引用多次添加到数组中。
问题内容: 我有一个前缀要添加到每条路线。现在,我在每个定义处都向路线添加了一个常量。有没有一种方法可以自动执行此操作? 问题答案: 答案取决于你如何为该应用程序提供服务。 安装在另一个WSGI容器中 假设你将在WSGI容器(mod_wsgi,uwsgi,gunicorn等)中运行此应用程序;你实际上需要将该应用程序作为该WSGI容器的子部分挂载在该前缀处(任何讲WSGI的东西都可以使用),并将A
这是我的的商店代码片段,包含商品和价格: 这是我的杂货车,其中int表示一辆车中每件商品的数量。我对HashMaps非常陌生,对于如何将stock map引用到price方法中并正确地将其相加感到非常困惑。理论上,这个问题的最终答案是2个鸡蛋和2盒橙汁的价格。非常感谢您的帮助
这似乎不起作用。 我还尝试在代码生成器使用的xml中添加架构名称,如 http://www.jooq.org/doc/3.5/manual/code-generation/codegen-advanced/