有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    Java在默认情况下是逐行执行的,即默认情况下是同步的。这意味着一旦你的解析器完成了,只有它才会移动到下一行。您不需要任何异步方式来实现它。只需检查响应obj和解析器的正确性