@Lord_North

Как получить доступ к записи json?

Привет. Не понимаю почему не могу изменить значение в json.
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.novaposhta.ua/v2.0/json/",
  "method": "POST",
  "headers": {
    "content-type": "application/json",
  },
  "processData": false,
  "data": "{\r\n\"apiKey\": \"edfa683c0e325e5afd444a8fb1121d90\",\r\n \"modelName\": \"Address\",\r\n \"calledMethod\": \"searchSettlements\",\r\n \"methodProperties\": {\r\n \"CityName\":\"киев\",\r\n \"Limit\": 10\r\n }\r\n}"
};
JSON.parse(settings.data).methodProperties.CityName="дол";
alert(JSON.parse(settings.data).methodProperties.CityName);

Алерт и дальше показывает "киев" , разве я не изменил значение на "дол"?
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Функция JSON.parse создает новый объект и поэтому его изменение не отражается на состояние исходного объекта.
// Parse settings.data into separate variable
let settings_data = JSON.parse(settings.data);

// Update settings_data object by new value
settings_data.methodProperties.CityName="дол";

// Update settings.data by new stringified value
settings.data = JSON.stringify(settings_data);

// Test
alert(JSON.parse(settings.data).methodProperties.CityName);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы