[英]Unexpected token at JSON position
When using JSON.parse to achieve the output expected I am getting error Unexpected token B in JSON at position 1
. 当使用JSON.parse实现预期的输出时,我
Unexpected token B in JSON at position 1
收到错误Unexpected token B in JSON at position 1
What is it I am missing? 我想念的是什么?
var string1 = "BODEBO,CARNE"; var array1 = string1.split(','); var string2 = "1,2"; var array2 = string2.split(','); var a =[]; var b = []; for(var i=0;i<array1.length;i++){ var c = array1[i]; var d = array2[i]; e = "[" + c +","+d +"]"; e =JSON.parse(e); a.push(e); } console.log(a);
Ouptput Expected 预期输出
[[ 'BODEBO', '1'],[ 'CARNE','2' ]];
without json.parse 没有json.parse
OUTPUT 输出值
[ '[BODEBO,1]', '[CARNE,2]' ]
I dont want ' ' on each array element 我不想在每个数组元素上使用''
Might as well just make an array if the output expected has arrays. 如果期望的输出包含数组,也可以仅创建一个数组。
var string1 = "BODEBO,CARNE"; var array1 = string1.split(','); var string2 = "1,2"; var array2 = string2.split(','); var a = []; for(var i = 0; i < array1.length; i++){ a.push([array1[i], array2[i]]); } console.log(a);
But who needs loops when you have map? 但是,当您拥有地图时,谁需要循环?
var string1 = "BODEBO,CARNE"; var array1 = string1.split(','); var string2 = "1,2"; var array2 = string2.split(','); console.log(array1.map((s, idx) => [s,array2[idx]]));
You could simply loop over the first array, and then push a single array onto your output array. 您可以简单地循环遍历第一个数组,然后将单个数组推入输出数组。
var string1 = "BODEBO,CARNE";
var array1 = string1.split(',');
var string2 = "1,2";
var array2 = string2.split(',');
var a = [];
for(var i=0;i<array1.length;i++){
a.push([ array1[i], array2[i] ]);
}
// You can now just make use of the 'a' array.
console.log(a);
Giving you the following output: [["BODEBO","1"],["CARNE","2"]] 提供以下输出:[[“ BODEBO”,“ 1”],[“ CARNE”,“ 2”]]
In order for JSON.parse
to work you need to provide valid JSON. 为了使
JSON.parse
工作,您需要提供有效的JSON。 The function is currently passing in an array like: 该函数当前正在传递一个数组,如:
[BODEBO,1]
which is not valid. 这是无效的。 To make it work you need to wrap each item in quotes, like:
为了使其正常工作,您需要将每个项目都用引号引起来,例如:
["BODEBO","1"]
var string1 = "BODEBO,CARNE"; var array1 = string1.split(','); var string2 = "1,2"; var array2 = string2.split(','); var a = []; var b = []; for (var i = 0; i < array1.length; i++) { var c = array1[i]; var d = array2[i]; e = "[\\"" + c + "\\",\\"" + d + "\\"]"; e = JSON.parse(e); a.push(e); } console.log(a);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.