当前位置: 首页 > 知识库问答 >
问题:

检索JSON数据并更新其值

邹锦
2023-03-14

我对使用java从web获取java非常陌生,我遇到了一个问题。我正在解析一个网站(Flightradar24.com)中的JSON,并将JSON中的数据保存到CSV文件中。然而,JSON中的值会不时更新,所以每当我再次尝试解析JSON文件时,更新的值都不会保存。例如,如果我有此条目

"2c55bbec":["A05F66",29.39,33.43,287,47000,450,"","F OETB1","GLF5","N123FT",1655825174,"DIA","STN","",0,0,"N123FT",0,""]

我想得到更新,这将是:

"2c55bbec":["A05F66",30.07,31.43,306,47000,445,"","F-HECA2","GLF5","N123FT",1655826084,"DIA","STN","",0,64,"N123FT",0,""]

然而,我唯一能做的就是一遍又一遍地获取相同的条目,而不更新值。我正在使用线程。sleep()以获得延迟,但我没有得到任何结果。

try {
            if(cache.isEmpty()) {
                try {
                    if(obj == null){
                        retrieveObject();
                        lastTimestamp = System.currentTimeMillis();
                    }else{
                        long currentTimestamp = System.currentTimeMillis();
                        long elapsedTimestamp = currentTimestamp - lastTimestamp;
                        long sleep = sleepTime - elapsedTimestamp;
                        if(sleep > 0){
                            Thread.sleep(sleep);
                        }
                        retrieveObject();
                        lastTimestamp = currentTimestamp;
                    }
                    for (Map.Entry<?, ?> entry : obj.entrySet()) {
                        String flightID = entry.getKey().toString();
                        JsonArray value = (JsonArray) entry.getValue();
                        String[] data = new String[20];
                        for(int i = 0; i < data.length-1; i++){
                            data[i] = value.get(i).toString();
                        }
                        data[19] = flightID;
                        cache.push(data);
                        writeToCSV(data);
                    }

                } catch (IOException ex) {
                    ex.printStackTrace();
                }
                }
                } catch (Exception e) {
                    e.printStackTrace();
                }
        return true;

这是我的代码中尝试获取更新值的部分(当然没有结果)。我使用HttpURLConnection和BufferedReader从web读取JSON文件。

是否有任何方法可以获得具有更新值的JSON条目?提前谢谢你

共有1个答案

郭通
2023-03-14

问题似乎是您的writeToCSV()方法没有覆盖文件。您可以尝试找出发生这种情况的原因并进行修复,也可以在再次写入之前删除并重新创建文件。

 类似资料:
  • 我是JSON的新手。我想使用JSON检索两个地方之间的距离。我想从位于“legs”数组中的“Distance”对象获取“text”(距离b/w两个地方),而“legs”数组又位于“routes”数组中。链接(http://maps.googleapis.com/maps/api/directions/json?origin=adoor&destination=thiruvananthapuram%

  • 我是不是漏掉了什么?

  • 我收到以下JSON作为响应 我正在解析这个JSON,如下所示 这很好用。 我的问题是,如果JSON中缺少任何一个键,例如“名称”丢失,它就会断裂,我将无法定义 是否可以检查是否存在,然后重试? https://jsfiddle.net/o2gxgz9r/9078/ 关于我修改了json的答案 但是他自己的财产不起作用了? 请看这把小提琴 https://jsfiddle.net/o2gxgz9r/

  • 问题内容: 我有以下表格及其关系。我将JSON数据存储在client_services表中。它们是使用MySQL查询来检索JSON值的任何方式,如下所示: 还是可以进一步规范化client_services表? 表: 表: 表: 表: 问题答案: 由于很多人都亲自问过我这个问题,所以我想我会再作一次修改。这是一个具有SELECT,Migration和View Creation的完整SQL的要点,

  • 问题内容: 我一直在尝试从我的php文件中检索JSON数据,这给了我很麻烦。这是我的代码 我的视图中的代码: 尝试在我的控制器中检索: 什么都不输出。 这是我的标题: 我在开发人员工具中可以看到的回应: 但是在浏览器中,输出为空。我试图解决这个问题超过4个小时,但徒劳无功。 我的查看代码: 控制器代码: 问题答案: 我在CI中用于Ajax调用的一般方法: JS: 控制器:

  • 问题内容: 大家好,我需要您的帮助。我在应用程序中创建SQLite数据库,然后将数据插入其中。现在我想从中检索数据,但我只想插入一个数据并检索它,然后将其显示在TextView中。 请帮助我,这是我第一次使用SQLite数据库。 问题答案: 这是我如何实现此目标的示例。 在这个例子中,我会,,和一个学生的名字和年龄。 首先创建一个类,我叫我的 DBManager.java 然后创建一个我叫我的 S