Javascript - 无法读取 json 键值 - JSON 中位置 1 的意外标记 i - sql 查询输出问题
Javascript - Unable to read json key values - Unexpected token i in JSON at position 1 - sql query output problem
我从 sql 查询中生成了这个字符串(基本上使用 ARRAY_AGG 和一些情况来格式化输出),看起来像这样
{id:2,name_of_division:'super department1',attendance_radius:1000}
但是,在 javascript 中,我无法获取任何键值,这也导致 JSON 解析错误。
我已尝试验证此 JSON,它看起来非常好。
这是一些故障排除,我不知道是什么原因造成的
console.log(clean_div_array_var[i].toString());
output ==> {id:2,name_of_division:'super department1',attendance_radius:1000}
console.log("id:" + clean_div_array_var[i].id);
output ==> id:undefined
console.log("name_of_division:" + clean_div_array_var[i].name_of_division);
output ==> name_of_division:undefined
JSON.parse(clean_div_array_var[i]);
output ==>
VM2561:1 Uncaught SyntaxError: Unexpected token i in JSON at position 1
at JSON.parse (<anonymous>)
at get_all_key_of_div_array ((index):817)
at render ((index):2321)
at jquery.dataTables.min.js:18
at Object.b.fnGetData (jquery.dataTables.min.js:12)
at B (jquery.dataTables.min.js:17)
at Ha (jquery.dataTables.min.js:25)
at O (jquery.dataTables.min.js:16)
at jquery.dataTables.min.js:49
at i (jquery.dataTables.min.js:35)
我什至尝试进行字符串化,然后以某种方式删除引号(我不明白为什么会出现这种情况)然后 JSON 解析。同样的问题。
stringifyvar = JSON.stringify(clean_div_array_var[i])
output ==> "{id:2,name_of_division:'super department1',attendance_radius:1000}"
stringifyvar = stringifyvar.split('\"').join('');
console.log("stringify remove quote:" + stringifyvar);
output ==> stringify remove quote:{id:2,name_of_division:'super department1',attendance_radius:1000}
parsed_json_data = JSON.parse(stringifyvar);
output ==>
VM2503:1 Uncaught SyntaxError: Unexpected token i in JSON at position 1
at JSON.parse (<anonymous>)
at get_all_key_of_div_array ((index):816)
at render ((index):2320)
at jquery.dataTables.min.js:18
at Object.b.fnGetData (jquery.dataTables.min.js:12)
at B (jquery.dataTables.min.js:17)
at Ha (jquery.dataTables.min.js:25)
at O (jquery.dataTables.min.js:16)
at jquery.dataTables.min.js:49
at i (jquery.dataTables.min.js:35)
我怎样才能从这个 json
中正确读取任何键
您的结果无效 JSON。有效格式为:
{"id":2, "name_of_division":"super department1", "attendance_radius":1000}
键必须用引号引起来,字符串 super department1
周围的引号必须是双引号,而不是单引号。
如果您希望能够使用 JSON.parse()
来处理它,您需要生成适当的 JSON。
我从 sql 查询中生成了这个字符串(基本上使用 ARRAY_AGG 和一些情况来格式化输出),看起来像这样
{id:2,name_of_division:'super department1',attendance_radius:1000}
但是,在 javascript 中,我无法获取任何键值,这也导致 JSON 解析错误。 我已尝试验证此 JSON,它看起来非常好。
这是一些故障排除,我不知道是什么原因造成的
console.log(clean_div_array_var[i].toString());
output ==> {id:2,name_of_division:'super department1',attendance_radius:1000}
console.log("id:" + clean_div_array_var[i].id);
output ==> id:undefined
console.log("name_of_division:" + clean_div_array_var[i].name_of_division);
output ==> name_of_division:undefined
JSON.parse(clean_div_array_var[i]);
output ==>
VM2561:1 Uncaught SyntaxError: Unexpected token i in JSON at position 1
at JSON.parse (<anonymous>)
at get_all_key_of_div_array ((index):817)
at render ((index):2321)
at jquery.dataTables.min.js:18
at Object.b.fnGetData (jquery.dataTables.min.js:12)
at B (jquery.dataTables.min.js:17)
at Ha (jquery.dataTables.min.js:25)
at O (jquery.dataTables.min.js:16)
at jquery.dataTables.min.js:49
at i (jquery.dataTables.min.js:35)
我什至尝试进行字符串化,然后以某种方式删除引号(我不明白为什么会出现这种情况)然后 JSON 解析。同样的问题。
stringifyvar = JSON.stringify(clean_div_array_var[i])
output ==> "{id:2,name_of_division:'super department1',attendance_radius:1000}"
stringifyvar = stringifyvar.split('\"').join('');
console.log("stringify remove quote:" + stringifyvar);
output ==> stringify remove quote:{id:2,name_of_division:'super department1',attendance_radius:1000}
parsed_json_data = JSON.parse(stringifyvar);
output ==>
VM2503:1 Uncaught SyntaxError: Unexpected token i in JSON at position 1
at JSON.parse (<anonymous>)
at get_all_key_of_div_array ((index):816)
at render ((index):2320)
at jquery.dataTables.min.js:18
at Object.b.fnGetData (jquery.dataTables.min.js:12)
at B (jquery.dataTables.min.js:17)
at Ha (jquery.dataTables.min.js:25)
at O (jquery.dataTables.min.js:16)
at jquery.dataTables.min.js:49
at i (jquery.dataTables.min.js:35)
我怎样才能从这个 json
中正确读取任何键您的结果无效 JSON。有效格式为:
{"id":2, "name_of_division":"super department1", "attendance_radius":1000}
键必须用引号引起来,字符串 super department1
周围的引号必须是双引号,而不是单引号。
如果您希望能够使用 JSON.parse()
来处理它,您需要生成适当的 JSON。