JavaScript JSON组合和数据Anylish

JavaScript JSON Combination and Data Anylish

本文关键字:数据 Anylish 组合 JSON JavaScript      更新时间:2023-09-26

我正在尝试从保存在.txt文件中的多个JSON响应中添加值。.txt文件大约有4000个条目。它们的格式如下:

{"id":"8f546dcf-b66a-4c53-b3d7-7290429483b8","price":"247.96000000","size":"0.03121005","product_id":"BTC-USD","side":"sell","stp":"dc"}
{"id":"0ec4b63a-b736-42af-a0aa-b4581bf12955","price":"247.90000000","size":"0.03910014","product_id":"BTC-USD","side":"sell","stp":"dc"}
{"id":"be403848-74dc-4494-8095-bd468777c958","price":"247.89000000","size":"0.04280854","product_id":"BTC-USD","side":"sell","stp":"dc"}
{"id":"ae2ae129-e850-4d8f-b945-55e65eb68a88","price":"247.83000000","size":"0.07941840","product_id":"BTC-USD","side":"sell","stp":"dc"}
{"id":"96194be4-40d8-446d-9f7e-ce72bc84af48","price":"247.63000000","size":"0.06225897","product_id":"BTC-USD","side":"sell","stp":"dc"}

我认为我需要组合不同的JSON数据集,然后才能用for循环遍历它们并进行求和/分析部分(大小:JSONSET1+大小:JSON SET2+…..),但我不确定我应该如何用javascript调用.txt文件并让它组合多个JSON部分。建议??

您可以控制带有数据集的文件吗?如果您这样做了,您可以使输入文件成为一个大的JSON字符串。

在终端中运行此命令,在每行末尾添加一个逗号:

sed -i 's/$/,/' yourFile.txt

然后用文本编辑器编辑文件,在第一行的开头放一个[,并用]替换最后一行的结束逗号。

然后,在您将文件读取为字符串后,您可以这样解析它:

var dataArray = JSON.parse(dataString);

你可以访问这样的数据:

console.log(dataArray[0].id);

这将在控制台上打印"8f546dcf-b66a-4c53-b3d7-7290429483b8"

我建议您使用.json文件,因为您使用的是JSON{Objects}。我在这里制作了一个文件的演示,在这里也制作了数据分析的演示

注意:演示文件托管在个人服务器中,因此以后可能无法工作。

现在该文件不是正确的JSON语法,因此需要进行一些解析。

entries.json

{"id":"8f546dcf-b66a-4c53-b3d7-7290429483b8","price":"247.96000000","size":"0.03121005","product_id":"BTC-USD","side":"sell","stp":"dc"}
{"id":"0ec4b63a-b736-42af-a0aa-b4581bf12955","price":"247.90000000","size":"0.03910014","product_id":"BTC-USD","side":"sell","stp":"dc"}
(..)

JavaScript

Req = new XMLHttpRequest();
Req.onload = process_entries;
Req.open("get", "http://butler.tk/entries.json", true);
Req.send();
function process_entries() {
    var response = Req.responseText;
    var arrayed = "[" + response
                        .split("}")
                        .join("},")
                        .slice(0,-1)
                 + "]";
    var entries = JSON.parse(arrayed);
    for (var i = 0, l = entries.length; i < l; i++) {
        var entry = entries[i];
        //entry.id,entry.size,etc.
    }
}
  • 我们用XMLHttpRequest()获取文件
  • 我们解析该文件,使其成为有效的JSON语法,该文件现在看起来是这样的

entries.json(已解析)

[
    {"id":"8f546dcf-b66a-4c53-b3d7-7290429483b8","price":"247.96000000","size":"0.03121005","product_id":"BTC-USD","side":"sell","stp":"dc"},
    {"id":"0ec4b63a-b736-42af-a0aa-b4581bf12955","price":"247.90000000","size":"0.03910014","product_id":"BTC-USD","side":"sell","stp":"dc"},
    (..)
]
  • 我们将文件解析为JSON{Object}
  • 我们遍历对象数组并访问它们的属性

注意:如果您可以控制数据的保存方式,您可以将数据保存为数组格式,而不是解析它。

希望它能有所帮助!:)