2017-07-26 24 views
0

我有存儲在變數的標準JSON和我能夠用文字,但一個變量時直接添加頂級關鍵JSON,節點,JS添加一個外部級使用一個變量作爲鍵名

[{"myKey":"my value"}] 

存儲在orginalJson中。我再加入一個頂級鍵文本

var newJson = JSON.parse(orginalJson); 
newJson = { myText: newJson }; 

{ "myText": [{"myKey":"my value"}]} 

我現在想用一個變量

var newVar = "newtext";  
var newJson = JSON.parse(orginalJson); 
newJson = { newVar: newJson }; 

替換代碼中的文本,但是我不明白如預期的VAR值,只是var的名稱不是值

預計

{ "newtext": [{"myKey":"my value"}]} 

,但得到

{ "newVar ": [{"myKey":"my value"}]} 

是什麼在這種情況下使用VAR的正確方法。我已閱讀其他帖子建議使用push,但我沒有任何運氣理解正確的語法。

回答

1

的正確的使用方法ar是;

var newVar = "newText" 
var newJson = {} 
newJson[newVar] = JSON.parse(originalJson) 

這會給你

{ "newVar ": [{"myKey":"my value"}]} 
+0

偉大的工程,似乎是最快的方式。 –

0

你必須第一創建對象,然後關鍵
使用括號標記因爲你使用相同的變量來保存新修改的值,我們需要一個臨時的對象。
更好的選擇可能是不使用相同的variabel兩次

var orginalJson = '{"test":"test"}'; 
 

 
var newVar = "newtext"; 
 
var newJson = JSON.parse(orginalJson); 
 
var tempObj = {}; 
 

 
tempObj[newVar] = newJson; 
 

 
newJson = tempObj; 
 

 
console.log(newJson)

或者在ES2015,您可以使用動態密鑰

var orginalJson = '{"test":"test"}'; 
 

 
var newVar = "newtext"; 
 
var newJson = JSON.parse(orginalJson); 
 

 
newJson = { [newVar]: newJson }; 
 

 
console.log(newJson);

+0

感謝您的代碼。這個答案確實有效,並解釋了這個過程。謝謝 –

相關問題