我已经在这个问题上停留了很长一段时间了,真的无法找到解决方案......
作为一个背景 - 我使用名为“eel'”的库将python脚本与Web GUI连接起来。
Python脚本使用json.dump生成.txt文件,如下所示:
{
"TEST": {"name": "TESTING", "email": "1", "telephone": "2"},
"Nik": {"name": "test", "email": "1", "telephone": "2"}
}
我正在尝试在python中读取json文件,将数据分配给变量:
with open('profile1.txt') as f:
data = json.load(f)
eel.my_javascript_function(data)
然后在JavaScript端收到它:
eel.expose(my_javascript_function);
function my_javascript_function(a) {
var obj = JSON.stringify(a);
document.getElementById("demo").innerHTML = obj;
现在,obj
返回整个字符串,如下所示:
{
"TEST": {"name": "TESTING", "email": "1", "telephone": "2"},
"Nik": {"name": "test", "email": "1", "telephone": "2"}
}
我遇到的问题是 - 如何为此字符串中的变量分配特定的信息位?
例如,如果我想制作var a =
TEST或Nik,是否可以调用更高级别的json?
另外,如何在特定类别中调用某些内容,即json [TEST] [name] - 沿着这些行?
答案 0 :(得分:0)
我想你想在JavaScript方面研究JSON.parse()方法......
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse
它将允许您传递嵌套的JSON结构,就像json.dump在您的示例中提供的那样,然后使用标准JavaScript对象操作在其中导航以获取嵌套值或结构。
var foo = '{"TEST": {"name": "TESTING", "email": "1", "telephone": "2"},"Nik": {"name": "test", "email": "1", "telephone": "2"}}';
var fooObject = JSON.parse( foo );
console.log( fooObject );
console.log( fooObject["Nik"] );
console.log( fooObject["Nik"]["email"] );
document.getElementById("myDiv").innerHTML = fooObject["TEST"]["name"];

<div id=myDiv></div>
&#13;
答案 1 :(得分:0)
JSON在1
时出现了意想不到的特征
这背后的原因是您正在尝试parse
JSON
对象。
var obj = {
"TEST": {"name": "TESTING", "email": "1", "telephone": "2"},
"Nik": {"name": "test", "email": "1", "telephone": "2"}
}
console.log(JSON.parse(obj));
因此,OP中的obj
返回JSON object
而不是JSON string
。无需再次解析它。
工作演示
var obj = {
"TEST": {"name": "TESTING", "email": "1", "telephone": "2"},
"Nik": {"name": "test", "email": "1", "telephone": "2"}
}
var test = obj.TEST;
var nik = obj.Nik;
console.log("test", test);
console.log("nik", nik);