以下是一个用例:
监控1 PM*网站
URL1:foo.com; json响应是{main:{id:1,name:John},{id:2,name:Lenny}}
URL2:bar.com; json的回复是{main:{id:1,name:Michael}}
==========================
再次监控2PM网站
URL1:foo.com; json的回复是{main:{id:1,name:Kevin},{id:2,name:Tim}
URL2:bar.com; json的回复是{main:{id:1,name:Michael}}
=====================
我想在下午1点将URL1及其json与URL1及其下午2点的json进行比较。
问题 1)存储URL1及其Json以及url2及其json的最佳数据结构(或数据库)是什么? 2)有没有办法记录从下午1点到下午2点的差异?
*注意:这些时间框架已经完成。
答案 0 :(得分:0)
您有2个主要选项,要么只有一个.json
文件并对其进行读写,要么使用MongoDB。
这是快速且易于设置的,但对于较大的数据集或者如果需要频繁请求,则不是一个好的选择。
创建一个对象,并在其中添加一些东西
let obj = {myMessage: 'Hello'};
使用stringify将其从对象转换为字符串
var json = JSON.stringify(obj);
使用fs将文件写入磁盘
const fs = require('fs');
fs.writeFile('myjsonfile.json', json, 'utf8', callback);
然后再读回来
fs.readFile(' myjsonfile.json',
'utf8', function readFileCallback(err, data){
if (err){
console.log(err);
} else {
obj = JSON.parse(data); //now it an object
obj.table.push({id: 2, square:3}); //add some data
json = JSON.stringify(obj); //convert it back to json
fs.writeFile('myjsonfile.json', json, 'utf8', callback); // write it back
}});
这并不难设置,但不像第一种方法那么简单。它具有更高的可扩展性,并且还具有更快的访问速率以及基本查询功能。对大多数情况来说,它无疑是首选。
检查this tutorial是否开始使用Mongo。
答案 1 :(得分:0)
1)存储URL1及其Json以及url2及其json的最佳数据结构(或数据库)是什么?
这实际上取决于您的确切用例,因为有几种不同的选择。您可以将它们存储为普通的JSON文件或使用支持JSON的数据库(例如MongoDB,CouchDB,MySQL,PostgreSQL,or something else)。
2)有没有办法记录从下午1点到下午2点的差异?
最好的方法可能是JSON Patch(但同样,这取决于您的确切用例)。 JSON Patch是IETF的Web标准。它定义了一种补丁格式,可以从两个JSON数据结构的差异中检索,也可以应用于JSON结构(因此,名称为“JSON Patch”)。有implementations of JSON Patch in different programming languages。