我计划在几个月内(每天)收集一些数据,以便在 JavaScipt 中进一步处理和表示(可能使用任何 js 库,例如 d3.js 等。我还不知道是哪一个)。数据将包括:
- 日期
- 一个整数
- 一位十进制数
您会推荐哪种文件/数据格式来记录数据以供后续使用 JavaScript 工作?
我计划在几个月内(每天)收集一些数据,以便在 JavaScipt 中进一步处理和表示(可能使用任何 js 库,例如 d3.js 等。我还不知道是哪一个)。数据将包括:
您会推荐哪种文件/数据格式来记录数据以供后续使用 JavaScript 工作?
我认为 CSV 在这里更合适,因为听起来它只是一个很长的数据点列表。
JSON可以工作,就像 XML 或任何其他系统可以工作一样,但尽管我很喜欢 JSON,但它不一定非常适合这项工作:
JSON 将是空间效率低下的。它需要大量的标点符号。
JSON 将是内存效率低下的。要将任何内容添加到 JSON 文件,您需要:
CSV 需要的多余标点符号要少得多,您可以在文件末尾附加一行新数据,而无需读取和写入整个内容。
考虑:
JSON(不漂亮):
{"01012016":[42,0.8675309],"01022016":[12,9.87654321]}
JSON(漂亮):
{
"01012016":[
42,
0.8675309
],
"01022016":[
12,
9.87654321
]
}
CSV:
01012016,42,0.8675309
01022016,12,9.87654321
Javascript 没有内置的 CSV 解析器JSON.parse
……因为解析 CSV 真的很容易!这只是众多方法中的一种:
var splitByLine = myCSVString.split("\n");
var splitByLineAndComma = [];
splitByLine.forEach(function(line){
splitByLineAndComma.push(line.split(","));
});
我会默认使用 JSON,它不仅是轻量级的,而且 JavaScript 也有一个内置的、易于使用的 JSON 解析器:JSON.parse
.
JSON 是名称/值对的集合,这听起来非常适合您建议的用例:
[
{
"my-date": 1451744353495,
"my-int": 42,
"my-decimal": 3.1415926535
},
{
"my-date": 1451744353496,
"my-int": 43,
"my-decimal": 2.7182818284
},
{
"my-date": 1451744353497,
"my-int": 44,
"my-decimal": 1.4142135623
}
]
如果您将 JSON 作为字符串,只需将其弹出到JSON.parse
中,您就可以开始使用闪亮的新 JavaScript 对象了:
var obj = JSON.parse(str);
obj[0]["my-int"] === 42; // true