2014-06-23 49 views
2

如何使用JSON.parse reviver方法編輯某個值。 我只想編輯每個聲明爲姓氏並且返回新值的鍵。JSON.parse使用reviver函數

var myObj = new Object(); 
myObj.firstname = "mike"; 
myObj.lastname = "smith"; 

var jsonString = JSON.stringify(myObj); 
var jsonObj = JSON.parse(jsonString, dataReviver); 

function dataReviver(key, value) 
{ 
    if(key == 'lastname') 
    { 
     var newLastname = "test"; 
     return newLastname; 
    } 
} 

回答

5

檢查的特殊情況(S)後,您只需在默認情況下傳回未修改值:

var myObj = new Object(); 
myObj.firstname = "mike"; 
myObj.lastname = "smith"; 

var jsonString = JSON.stringify(myObj); 
var jsonObj = JSON.parse(jsonString, dataReviver); 

function dataReviver(key, value) 
{ 
    if(key == 'lastname') 
    { 
     var newLastname = "test"; 
     return newLastname; 
    } 

    return value; // < here is where un-modified key/value pass though 

} 

JSON.stringify(jsonObj)// "{"firstname":"mike","lastname":"test"}"