我需要根据数据库查询的结果集创建可变数量的JSON对象和JSON数组。JSON格式看起来与以下用于谷歌图表的格式非常相似。
{
“cols”: [
{"id":"","label":"year","type":"string"},
{"id":"","label":"sales","type":"number"},
{"id":"","label":"expenses","type":"number"}
],
“rows”: [
{"c":[{"v":"2001"},{"v":3},{"v":5}]},
{“c”:[{"v":"2002"},{"v":5},{"v":10}]},
{“c”:[{"v":"2003"},{"v":6},{"v":4}]},
{“c”:[{"v":"2004"},{"v":8},{"v":32}]},
{“c”:[{"v":"2005"},{"v":3},{"v":56}]}
]
}
我的问题是,我觉得这应该是一个简单的答案,如何在for循环中创建多个具有唯一名称的JSON对象?我的尝试:
for(int i=0;i<10;i++) {
JSONObject "tempName"+i = new JSONObject();
}
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.Arrays;
import java.util.List;
/**
* Some solution for write files from different folders to JSON
* @author Dmytro Melnychuk
*/
public class ParseFilesToJson {
public static void main(String[] args) {
List<String> folderNames = Arrays.asList("dwg", "eta-en", "eta-pl", "inst", "prod", "tds-en", "tds-pl");
folderNames.forEach(it -> {
writeIntoFile(it);
});
}
private static void writeIntoFile(String folderName) {
File directory = new File("C:\\Users\\mel\\AppData\\Roaming\\data\\" + folderName);
File[] directories = directory.listFiles();
JSONArray array = new JSONArray();
JSONObject json;
for (int i = 0; i < directories.length; i++) {
json = new JSONObject();
json.put("name", directories[i].getName());
json.put("version", 1);
array.put(json);
}
try (Writer file = new FileWriter("d:\\" + folderName + ".json")) {
array.write(file, 2, 0);
} catch (IOException e) {
}
}
}
该解决方案已为Java 7及以下版本的用户准备好:)
JSONArray arr = new JSONArray();
HashMap<String, JSONObject> map = new HashMap<String, JSONObject>();
for(int i = 0 ; i < 10 ; i++) {
JSONObject json=new JSONObject();
json.put("id",i);
json.put("firstName","abc"+i);
map.put("json" + i, json);
arr.put(map.get("json" + i));
}
System.println("The json string is " + arr.toString());
OutPut is
The json string is
[
{"id":0,"firstName":"abc0"},
{"id":1,"firstName":"abc1"},
{"id":2,"firstName":"abc2"},
{"id":3,"firstName":"abc3"},
{"id":4,"firstName":"abc4"}
]
Java变量名不能动态构造。
我不知道怎么还没有人回答这个问题,但给你。
JSONObject objects = new JSONObject[10];
for(int i = 0 ; i < objects.length ; i++) {
objects[i] = new JSONObject();
}
JSONObject o = objects[2]; // get the third one
数组不能动态调整大小。如果需要这种行为,应该使用适当的列表
实现。如果要按名称访问元素,还可以使用映射
。
Map<String, JSONObject> map = new HashMap<>();
for(int i = 0 ; i < 10 ; i++) {
map.put("tempName" + i, new JSONObject());
}
JSONObject o = map.get("tempName3"); // get the 4th created (hashmaps don't have an ordering though)
问题内容: 我有选择标签的 数组 。 我想在JavaScript中创建一个具有两个字段’uniqueIDofSelect和optionValue’的json对象。 我使用getElementsByName(“ status”)并对其进行迭代。 编辑 我需要像 等等… 问题答案: 据我对您的要求的理解,这应该有效:
有没有办法只使用一个具有多个整数的 for 循环?目前我只编写了 int num0 的代码。但是有没有办法将 num1,num2,num3 的其余部分放在同一个代码中?我之所以在这里要求这样做,是因为我作为程序员没有经验,我想知道你们是否知道是否有解决方案。(请原谅我的语法不好)
问题内容: 我想通过Python中的while循环动态创建变量。 问题答案: 可以使用字典来完成此任务。字典是键和值的存储。 你可以使用变量键名来获得变量变量的效果,而不会带来安全风险。 对于你正在考虑做类似事情的情况 … 列表可能比字典更合适。一个列表代表对象的有序序列,并带有整数索引: 对于有序序列,列表比整数键类型的字典更方便,因为列表支持迭代的索引顺序,,和其他操作,将需要尴尬密钥管理与字
我如何比较用户输入的这些数组呢?
问题内容: 假设您必须在python中创建10个类对象,并对其进行处理,例如: 您将如何循环处理,并为每个对象分配一个变量(如),从而使代码更短?每个对象都可以在循环外部访问 问题答案: 每天都会以不同的方式询问这个问题。答案是:将数据放在变量名之外,这是必填的博客文章。 在这种情况下,为什么不列出objs?
问题内容: 我正在尝试显示10位玩家的表格。我通过ajax获取数据,并将其作为道具传递给我的孩子。 现在,我需要一个列表组件来渲染播放器: 这给了我一个。 我不确定发生了什么,我的控制台日志显示了正确的数据,但是以某种方式我无法在返回中访问它。 我想念什么? 问题答案: 在组件中,您需要更改初始状态,因为您正在尝试使用for,但是此属性是导致错误的原因。 此外,如在是你应该从它那里得到的属性