简体   繁体   English

JSON位置出现意外令牌

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM