在Python中,我使用数据加载变量,然后使用此代码将其转换为json。
jsVar = (json.dumps(jsPass))
产生此输出。 {" TT1004":[[1004,45.296109039999997,-75.926546579999993,66.996664760000002,150,false]]," TT1001":[[1001,45.296471220000001,-75.923881289999997,64.616423409999996,150,false ]]," TT1003":[[1003,45.296109379999997,-75.926543379999998,67.240025419999995,150,false]]," TT1002":[[1002,45.29626098,-75.924908610000003,65.300880480000004,150 ,true]]}
输出通过了JSON Formatter&的验证。验证者网站。当我运行javaScript代码
时var myVar2 = {};
var myVar2 = JSON.parse(jsVar);
我收到以下错误
SyntaxError:JSON.parse:JSON数据第1行第2列的意外字符。
我对JS和JSON的新手并不是很强。任何建设性的意见,网站或文学建议将不胜感激。
更好地关注实际问题。 从您非常有用的解释和问题,我可以看到我不需要解析数据。如此处所述,变量保存有效的JavaScript数组数据。我发现的是,Python中生成的变量不是我在JS中访问的变量,即使它们位于相同的文件位置并且具有相同的名称。该过程设置为像这样运行。首先,Python代码生成JSON变量,其次,JavaScript代码使用Python生成的变量中的数据分配变量,然后触发HTML文件以执行JS代码。当我查看JavaScript变量的console.log或.dir方法的输出时,没有数据。我需要学习的是如何将Python变量导入JavaScript代码。我不知道这个问题是否可以在这里得到解答,还是我应该在StackOverFlow中提出另一个问题?
答案 0 :(得分:0)
我已经使用JSONlint快速测试,因此您肯定已经获得了有效的json。没有必要使用JSON.parse()
对此进行标准化,因为它已经很好了。你唯一需要做的就是:
var myVar2 = jsVar;
如果您检查console.log(myVar2.TT1001);
将根据需要显示一些数组数据。
答案 1 :(得分:0)
您的数据已经过解析,您可以像javascript对象一样使用它。如果你的数据是
"{"TT1004":[[1004,45.29610904,-75.92654658,66.99666476,150,false]],"TT1001":[[1001,45.29647122,-75.92388129,64.61642341,150,false]],"TT1003":[[1003,45.29610938,-75.92654338,67.24002542,150,false]],"TT1002":[[1002,45.29626098,-75.92490861,65.30088048,150,true]]}"
一个JSON字符串,然后你需要解析它,但你上面粘贴的数据是一个javascript对象。
{
"TT1004": [
[1004, 45.296109039999997, -75.926546579999993, 66.996664760000002, 150, false]
],
"TT1001": [
[1001, 45.296471220000001, -75.923881289999997, 64.616423409999996, 150, false]
],
"TT1003": [
[1003, 45.296109379999997, -75.926543379999998, 67.240025419999995, 150, false]
],
"TT1002": [
[1002, 45.29626098, -75.924908610000003, 65.300880480000004, 150, true]
]
}
答案 2 :(得分:-1)
您的数据已经是JavaScript对象。如果您不确定要返回的对象是否已经是有效的JavaScript对象,则可以执行此类操作。
if(typeof data != 'object')
{
var data = JSON.parse(data);
}