java - 处理 JSON 更改信息的最佳方式

标签 java json

我正在寻找一种方法来处理我在 JSON 文件中收到的信息。这个文件应该不断变化(其他人和程序将访问它),所以一会儿它就会像这个例子:

{
  "activities": [
    {
      "name": "do my homework",
      "status": "not yet done",
      "important": true
    },
    {
      "name": "wash the dishes",
      "status": "not yet done",
      "important": true
    },
    {
      "name": "play videogames",
      "status": "done",
      "important": false
    },
    {
      "name": "take a shower",
      "status": "done",
      "important": true
    }
  ]
}

15分钟后(只是说一个时间量)就会像这样

{
  "activities": [
    {
      "name": "do my homework",
      "status": "done", //NOTICE THIS ACTIVITY WAS DONE
      "important": true
    },
    {
      "name": "wash the dishes",
      "status": "not yet done",
      "important": false //NOTICE THIS HAS CHANGED ITS IMPORTANCE
    },
    {
      "name": "play videogames",
      "status": "done",
      "important": false
    },
    {
      "name": "take a shower",
      "status": "done",
      "important": true
    },
    { //NOTICE I'VE ADDED A NEW ACTIVITY
      "name": "take another shower",
      "status": "not yet done",
      "important": false
    }
  ]
}

我想知道的是如何在 Java 中处理这些变化(至少是一个想法),这可以帮助我检测这些变化并处理它们。

我正在考虑创建两个数组列表(doneActivities 和 notYetDoneActivities),每 10 分钟调用 json 文件并检查是否有更改,并且可能在这些数组列表之间切换对象(听起来不错,但我不知道如何才能做吧)。

或者我什至可以使用 mysql 数据库,但我认为它可能会进一步使我的代码变得更加复杂,而我试图使其尽可能简单。

请注意,我的 Activity 类是这样的:

public class Activity {
   private String name;
   private boolean done;
   private boolean important;
   //Getters and setters
}

如有任何建议,我们将不胜感激。

最佳答案

您需要一个身份字段 - 每个 Activity 都是唯一的,以便您始终可以区分已处理的 Activity 和出现的新 Activity 。您还没有提到 json 数据是如何生成的,但是如果涉及到数据库,那么它可能已经存储了一个可以包含在 json 中的 id。

public class Activity {
   private long id;
   private String name;
   private boolean done;
   private boolean important;
   //Getters and setters

   @Override
   public boolean equals(Object o) {
     if (o instanceof Activity) {
       Activity other = (Activity) o;
       return this.getId() == other.getId();
     }
     return false;
   }
}

equals 方法将允许您将您的 Activity 存储在一个集合中,例如HashSet

关于java - 处理 JSON 更改信息的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25899974/

相关文章:

JavaScript 返回未定义

java - 内部类与静态嵌套类的 GC 性能下降

使用 JOptionPane 的 Java 选举程序

json - 为什么我的 json 格式的字符串没有通过在 swift 3 中使用 swiftyjson 库转换为 json 数组

javascript - 将自定义字符串转换为 json

php - 在 PHP 中插入和选择存储过程

java - 如何使用类路径正确编译Java类?

java - 我可以用 Java 编写类似 Notification 的东西吗?

Java创建新节点时出现问题

javascript - 根据键值对过滤对象