2016-10-19 48 views
-1

得到錯誤,同時將字符串轉換爲JSON對象

var result = ""; 
 
result += "["; 
 
for(i=0;i<=10;i++) 
 
    { 
 
    result += "{ 'key': 'keyvalue" + i + "', 'values': ["; 
 
    for(j=0;j<=10;j++) 
 
     { 
 
     result += "{ 'key': 'subkeyvalue"+j+"', 'value':"+j+"}, "; 
 
     } 
 
    result += "]}, "; 
 
    } 
 

 
result += "]"; 
 

 
console.log(result); 
 
console.log(JSON.stringify(result)); 
 
console.log(JSON.parse(result));

,如果我嘗試字符串轉換爲JSON.parse。我正在低於錯誤。

JSON.parse:在JSON數據

您可以請任何一個解決這個問題的第1行第4列預期的屬性名稱或「}」。

+5

裹_keys_和_values_在雙引號 – Tushar

+1

BTW你爲什麼要這麼做?正如你可以通過'JSON.stringify'傳遞JavaScript對象一樣; – itzmukeshy7

+0

爲什麼你要創建字符串?創建適當的對象並添加到數組中,然後使用JSON.stringify()來創建json字符串 –

回答

0

不要通過字符串連接手動創建 JSON字符串你不應該追加,(逗號)的最後一個元素。這個問題根本。

創建一個數組,創建適當的對象並將它們添加到數組,然後按原樣將數組傳遞到您的圖表庫。

或者如果您確實需要JSON 字符串請在陣列上使用JSON.stringify()

並注意there is no such thing as a "JSON object"

var result = []; 
 
var vals; 
 
for(var i=0;i<=10;i++) { 
 
    vals = []; 
 
    for(j=0;j<=10;j++) { 
 
    vals.push({ key: 'subkeyvalue'+j, value: j }); 
 
    } 
 
    result.push({ key: 'keyvalue' + i, values: vals }); 
 
} 
 

 
// someChartFunction(result); 
 

 
console.log(result); 
 
console.log(JSON.stringify(result));

+0

謝謝。非常感謝。現在它的工作正常。 –

1

在這個片段中(result += "]}, ";) , ","(逗號)是越來越附加在最後,所以JSON會像"},]"在那裏你會期待像"}]"

+0

您應該在評論中添加此,因爲這不是一個完整的答案; – itzmukeshy7

+0

但這是正確答案;) –

+0

可能是'result + ='{「key」:「subkeyvalue'+ j +'」,「value」:'+ j +'},';'那麼這個說法是正確的嗎? – itzmukeshy7

0

我認爲你可以使用JSON.stringify()或使用鍵和值(」 )報價

var result = ""; 
result += "["; 
for(i=0;i<=10;i++) 
    { 
    result += "{ 'key': 'keyvalue" + i + "', 'values': ["; 
    for(j=0;j<=10;j++) 
     { 
     result += "{ 'key': 'subkeyvalue"+j+"', 'value':"+j+"}, "; 
     } 
    result += "]}, "; 
    } 

result += "]"; 

console.log(result); 

console.log(JSON.stringify(result)); 
+0

'result'已經是字符串了嗎? – itzmukeshy7

+0

我試過JsON.stringify,它再次顯示相同的字符串格式結果 –

0

嘗試使用下面給出的代碼。而迭代

var result = ""; 
 
result += "["; 
 
for(i=0;i<=10;i++) 
 
    { 
 
    result += '{ "key": "keyvalue' + i + '", "values": ['; 
 
    for(j=0;j<=10;j++) 
 
     { 
 
     result += '{ "key": "subkeyvalue'+j+'", "value":'+j+'}'; 
 
     if(j!=10) { 
 
      result += ',' 
 
     } 
 
     } 
 
    result += ']} '; 
 
    if(i!=10) { 
 
    \t result += ',' 
 
    } 
 
    } 
 

 
result += ']'; 
 

 
console.log(result); 
 

 
console.log(JSON.parse(result));