2013-06-26 62 views
-1

在下面的js變量中,我有我的json數據; 我正在通過會話獲取json數據;插入到json數組的指定位置

var newVariable=(document.getElementById("populateDT").innerHTML); 

這是以下內容。

var newVariable=[ 
     { 
      "Identifier": "0", 
      "Label": "abc", 
      "Categories": "Standard", 
      "UpdatedBy": "Lno", 
      "UpdatedAt": "13", 
      "RefId": "0", 
      "Edit": "0", 
      "Cs": [ 
       "99", 
       "13" 
      ], 
      "ActionMessage": "Form", 
      "Message": "asfdasf", 
      "Combiner": [] 
     }, 
     { 
      "Identifier": "1", 
      "Label": "abc", 
      "Categories": "Standard", 
      "UpdatedBy": "Lno", 
      "UpdatedAt": "01", 
      "RefId": "0", 
      "Edit": "1", 
      "Cs": [ 
       "05", 
       "213" 
      ], 
      "ActionMessage": "Form", 
      "Message": "asfdasf", 
      "Combiner": [] 
     } 
    ]; 

那麼我這樣做 newVariable[jsonArrayNum]=toReplace; // toReplace全局聲明

更換如下。

var toReplace={ 
    "Identifier": "0", 
    "Label": "Critical", 
    "Categories": "Standard", 
    "UpdatedBy": "Lno", 
    "UpdatedAt": "13", 
    "RefId": "0", 
    "Edit": "0", 
    "Cs": [ 
     "205", 
     "992" 
    ], 
    "ActionMessage": "Form", 
    "Message": "abcd", 
    "Combiner": [] 
}; 

但它似乎並沒有用新的json字段替換第一個位置。我得到舊的json數組。

+0

看起來工作得很好對我來說,必須有別的事情上。有沒有發生錯誤? –

+3

適合我。 [小提琴](http://jsfiddle.net/RAbSH/) – crush

+1

這是JavaScript而不是JSON ... – YXD

回答

-1

我會使用陣列功能:

newVariable.shift(); 
newVariable.unshift(toReplace); 
+0

爲什麼你會使用這些功能,而不是像他正在做的那樣設置值?這是沒有意義的,只允許你修改第一個元素。 – crush

+0

因爲他希望數組的第一個元素被更改和替換。同樣由於任何原因,數組的原型被改變,第一個鍵可能不是0.上述方法是從數組中移除第一個元素並在其開始處添加新元素的正確方法。 – Alex

+0

他不需要刪除元素。他只想修改它。我根本不會稱這是正確的。這是沒有必要的。你會如何替換元素4? – crush