我正在编写一个 Spigot 插件来生成板条箱。这个 JsonReader 扫描宝库文件以获取我请求的特定设置。问题是,我不想一遍又一遍地复制相同的 while 循环,所以我决定做这个。
它成功读取前六个标记,但它在标记 6 处停止,“最大轴”数组在此处停止。那里没有逗号。当我将第四个数字添加到数组时,它甚至会读取它,但在该数字处停止,因为那里没有逗号。JsonReader.setLenient(true)是使用,JsonWriter.setLenient(true)用于写文件。我试过将作者设置为假。
这写的方式很奇怪,但这只是为了测试。现在不需要从文件中实际返回值。
PoolFile.scanDocument()
private Object scanDocument(JsonReader reader, Shell handleObj) {
reader.setLenient(true);
int retval = -2;
try {
JsonToken token = null; Object current = -5;
while (reader.hasNext()) {
token = reader.peek();
//if (token == JsonToken.END_DOCUMENT) break;
// Output while reading: 0 2 1 3 3 3
switch(token) {
case BEGIN_OBJECT: reader.beginObject(); retval = 0; break;
case BEGIN_ARRAY: reader.beginArray(); retval = 1; break;
case NAME: current = reader.nextName(); retval = 2; break;
case NUMBER: current = reader.nextDouble(); retval = 3; break;
case BOOLEAN: current = reader.nextBoolean(); retval = 4; break;
case STRING: current = reader.nextString(); retval = 5; break;
case END_ARRAY: reader.endArray(); retval = 6; break;
case END_OBJECT: reader.endObject(); retval = 7; break;
default: reader.skipValue(); retval = -1;
}
handleObj.doWithJSONObject(token, retval);
}
} catch (IOException e) { retval = -1; e.printStackTrace(); }
return retval;
}
默认池.json
{
"max-axis": [
50.0,
-1.0,
50.0 // It stops here.
],
"pools": [
{
"label": "test",
"items": {}
}
]
}
编辑如果您想查看该应用程序,请访问 GitHub 页面。来源位于skycrates/src/main
慕尼黑8549860
相关分类