json在java中如何等待一个任务完成?
我有一个字符串,我正在解析它并将其存储到JsonArray,然后对其进行迭代。有一个竞争条件,我的解析器没有完成,控件向前移动。我希望先完成这项工作,然后继续前进
我试着等待并通知。它不起作用了
Response res = run(el);
JsonParser parser = new JsonParser();
JsonElement jsonTree = parser.parse(res.body().string());
try {
wait();
} catch(InterruptedException e) {
e.printStackTrace();
}
System.out.println("jsontree : "+ jsonTree);
JsonArray array=jsonTree.getAsJsonArray();
notifyAll();
if(jsonTree.isJsonArray()) {
System.out.println("I am JSONARRAY");
}
for(JsonElement element: array) {
count++;
System.out.println("count "+ count);
}
现在jsonTree是空的,它看起来是这样的:[]
。我希望jsonTree具有对象。有什么建议吗
# 1 楼答案
Java在默认情况下是逐行执行的,即默认情况下是同步的。这意味着一旦你的解析器完成了,只有它才会移动到下一行。您不需要任何异步方式来实现它。只需检查响应obj和解析器的正确性