Я ищу способ обработки информации, которую я получаю в файле 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 (по крайней мере, идея), которые могли бы помочь мне, чтобы обнаружить эти изменения и обрабатывать их.
Я думал о создании двух arraylists (doneActivities и notYetDoneActivities), и каждые 10 минут вызывают json-файл и проверяют, были ли изменения, и, вероятно, переключали объекты между этими arraylists (звучит нормально, но я не знаю, как можно Я делаю это).
Или я мог бы даже использовать базу данных mysql, но я думаю, что это могло бы еще более усложнить мой код, и я стараюсь держать его как можно проще.
уведомление, что моя деятельность класса, как это:
public class Activity {
private String name;
private boolean done;
private boolean important;
//Getters and setters
}
Любые предложения будут очень благодарны.
вы можете использовать nio для обнаружения изменений файловой системы. Есть ли уверенность в том, что другие процессы не будут удалять элементы из файла? если нет, может быть трудно обнаружить remove + insert vs updates – Andreas
Это звучит как работа для JSON Patch и, возможно, Jiff. – chrylis
Простейшим подходом было бы получить код, который генерирует файл для вставки значения «changeDate»: 1410990011', которое вы могли бы сравнивать с интервалом до последнего значения. Если дата изменилась, измените структуру и обработайте изменения. Дата изменения также может быть добавлена к каждому элементу массива, поэтому вы можете легко определить конкретные изменения. –