在本地存储中附加文件名以顺序保存 JSONObject
Append file name in local storage to saveJSONObject sequentially
我正在使用处理从 Web 抓取数据,使用 API 调用每分钟获取一个 JSON 对象,这是通过以下方式完成的;
JSONObject raw = loadJSONObject(url);
events = raw.getJSONArray("theThingiWant");
然后我使用 saveJSONObject(raw, "data/scraped"+".json");
来保存这个对象。
我知道在处理过程中有 saveframe() 函数允许您按顺序将帧保存为您选择的数字格式,并希望 saveJSONObject 会有这个在其中,但事实并非如此。
我想做的是按顺序保存多个 JSON 对象,这样我的数据文件夹包含 scrape001、scrape002 等。是否有此功能,或者可以通过检索和附加最后保存的文件来完成?
所以我有一个可行的解决方案来解决我想做的事情,如下所示;
我知道我正在调用 API 并每分钟获取一个新的 JSON 对象。我可以将它与 millis() 函数结合使用,如下所示
saveJSONObject(raw, "data/scraped00"+(millis()/60000)+".json");
它所做的是保存 JSON 对象,然后将其附加一个由 millis() 生成的唯一数字除以 60000,从毫秒转换为分钟。这意味着该文件不会覆盖上次保存,而是以一分钟为增量生成一个新文件。
除了您的 millis()
解决方案之外,您还可以只跟踪一个 int
值,在生成文件名时使用它,并在每次保存文件时递增它。
像这样:
int files = 0;
void draw(){
saveJSONObject(whatever, "scraped" + files + ".json");
files++;
}
您还可以使用 frameCount
变量:
void draw(){
saveJSONObject(whatever, "scraped" + frameCount+ ".json");
files++;
}
我正在使用处理从 Web 抓取数据,使用 API 调用每分钟获取一个 JSON 对象,这是通过以下方式完成的;
JSONObject raw = loadJSONObject(url);
events = raw.getJSONArray("theThingiWant");
然后我使用 saveJSONObject(raw, "data/scraped"+".json");
来保存这个对象。
我知道在处理过程中有 saveframe() 函数允许您按顺序将帧保存为您选择的数字格式,并希望 saveJSONObject 会有这个在其中,但事实并非如此。
我想做的是按顺序保存多个 JSON 对象,这样我的数据文件夹包含 scrape001、scrape002 等。是否有此功能,或者可以通过检索和附加最后保存的文件来完成?
所以我有一个可行的解决方案来解决我想做的事情,如下所示;
我知道我正在调用 API 并每分钟获取一个新的 JSON 对象。我可以将它与 millis() 函数结合使用,如下所示
saveJSONObject(raw, "data/scraped00"+(millis()/60000)+".json");
它所做的是保存 JSON 对象,然后将其附加一个由 millis() 生成的唯一数字除以 60000,从毫秒转换为分钟。这意味着该文件不会覆盖上次保存,而是以一分钟为增量生成一个新文件。
除了您的 millis()
解决方案之外,您还可以只跟踪一个 int
值,在生成文件名时使用它,并在每次保存文件时递增它。
像这样:
int files = 0;
void draw(){
saveJSONObject(whatever, "scraped" + files + ".json");
files++;
}
您还可以使用 frameCount
变量:
void draw(){
saveJSONObject(whatever, "scraped" + frameCount+ ".json");
files++;
}