簡體   English   中英

JSON位置出現意外令牌

[英]Unexpected token at JSON position

當使用JSON.parse實現預期的輸出時,我Unexpected token B in JSON at position 1收到錯誤Unexpected token B in JSON at position 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); 

預期輸出

[[ 'BODEBO', '1'],[ 'CARNE','2' ]];

沒有json.parse

輸出值

 [ '[BODEBO,1]', '[CARNE,2]' ]

我不想在每個數組元素上使用''

如果期望的輸出包含數組,也可以僅創建一個數組。

 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); 

但是,當您擁有地圖時,誰需要循環?

 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]])); 

您可以簡單地循環遍歷第一個數組,然后將單個數組推入輸出數組。

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);

提供以下輸出:[[“ BODEBO”,“ 1”],[“ CARNE”,“ 2”]]

為了使JSON.parse工作,您需要提供有效的JSON。 該函數當前正在傳遞一個數組,如:

[BODEBO,1]

這是無效的。 為了使其正常工作,您需要將每個項目都用引號引起來,例如:

["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