gpt4 book ai didi

javascript - 如何在 Perl 中打开 javascript 对象?

转载 作者:行者123 更新时间:2023-11-29 18:27:15 25 4
gpt4 key购买 nike

我有一个包含 5.5mb 经纬度数据的 JavaScript 对象文件,我想在 Perl 中打开它,这样我就可以应用粗略的细节减少算法,然后用减少的数据集保存一个新的对象文件。为了减少细节,我使用了一个 for 循环,它只需要每 20 个 long/lat 对。

我可以在 javascript 中执行此操作,但这需要我复制/粘贴每个坐标集并一次在其上运行我的 JavasSript。

然后我想也许我可以获取每组坐标并将它们放入 SQL 数据库中,但这似乎是一种粗略的方法。并移动大量数据。

我认为 Perl 是更好的选择之一,可以在服务器上完成所有工作。

我可以用以下方式打开文件:

#!/usr/bin/perl

# open file
open(FILE, "reduced_object_latlng.js") or die("Unable to open file");

# read file into an array
@data = <FILE>;

# close file
close(FILE);

# print file contents
foreach $line (@data)
{
print $line;
}

对象遵循这种设计:

var paths = {
mayo: {
name: 'Mayo',
colour: 'green',
coordinates: '-9.854892,53.76898 -9.853634,53.769338 -9.85282,53.769387 -9.851981,53.769561 -9.850952,53.769508 -9.850129,53.769371 -9.849136,53.769171 **data**'
},
galway: {
name: 'Galway',
colour: 'purple',
coordinates: '**data**;
}
}; //etc.

为了说明我如何减少上述数据,我的 javascript 版本从一个文件加载了一个 var coords = "*data*"

coords = coords.split(" ");
var path = [];
var output="";
document.getElementById("map_canvas").innerHTML = "";
for (var i = 0; i < coords.length; i++) {
if (i%20==0)
{
var coord = coords[i].split(",");
output += coord[0]+","+coord[1]+" ";
}
}
document.getElementById("map_canvas").innerHTML = output;

我读到一些建议我将其转换为 JSON,我不确定是否需要这样做。有没有办法将文件作为对象加载,而不是编写纯文本处理程序?


因为时间紧迫,所以我这样做了:

var outputobject = 'var paths = {';
for (property in copypaths) {
outputobject += property + ': { ';
outputobject += "name: '" + copypaths[property].name+"',";
outputobject += "colour: '"+ copypaths[property].colour+"',";

var reducedoutput="";
var coord = copypaths[property].coordinates.split(" ");
for (var i = 0; i < coord.length; i++) {
if (i%20==0)
{
var coords = coord[i].split(",");
reducedoutput += coords[0]+","+coords[1]+" ";
}
}
outputobject += "coordinates: '"+ reducedoutput+"'},";
}
outputobject += "};";
document.getElementById("reduced").innerHTML = outputobject;

它仍然涉及复制/粘贴和删除最后一个,。谢谢@Oleg V. Volkov,当我在本周晚些时候有更多时间时,我会看看你提出的方法。

最佳答案

只需去除领先的 JavaScript,这样您就可以使用裸键获得几乎正确的 JSON 并使用 JSON/JSON::PPallow_barekey 设置为真值以解码结果字符串的实例。

关于javascript - 如何在 Perl 中打开 javascript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11829430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com