JSON.parse с использованием функции восстановления

#javascript

#javascript

Вопрос:

Как использовать метод восстановления JSON.parse для редактирования определенного значения. Я просто хочу отредактировать каждый ключ, который объявлен как lastname, а затем вернуть новое значение.

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

Ответ №1:

После проверки особых случаев вам просто нужно передать обратно неизмененные значения по умолчанию:

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