Замена значения свойства в JSON - PullRequest
3 голосов
/ 21 июня 2011

Если у меня есть структура JSON, которая выглядит примерно так:

var user = {
    map: {
        width: 785,
        height: 791
    },
    image: {
        name: "image.png",
        size: {width:32}
    },
    properties:[{
        firstName: "Bob",
        lastName: "Jones",
    }]
};

Как бы изменить (после создания) значение свойства firstName на "Jane"?

Я довольно новичок в JSON, и я просто пытаюсь понять, как сделать это одно изменение на данный момент.Любая помощь будет принята с благодарностью.

Ответы [ 4 ]

4 голосов
/ 21 июня 2011

Ну, одна из причин вашего замешательства может заключаться в том, что это вовсе не JSON. JSON - это текстовый формат, используемый для сериализации объектов. Это просто буквальный объект в Javascript.

Чтобы изменить свойство firstName, необходимо получить доступ к первому элементу в массиве properties в объекте user:

user.properties[0].firstName = "Jane";
4 голосов
/ 21 июня 2011

Пока переменная user находится в области действия:

user.properties[0].firstName = "Jane";
1 голос
/ 21 июня 2011
var changeName = function(obj, newName) {
   obj.properties[0].firstName = newName;
   return obj;
}
0 голосов
/ 27 июля 2011

Я видел этот вопрос и его решения, но мой сценарий все еще не работал. Я нашел решение и решил, что я должен опубликовать это здесь, это может спасти некоторых людей от небольшого исследования.

Мой результат JSON содержал несколько целых чисел, и для него требовалась функция parseInt ().

Используя приведенный выше пример, вы, вероятно, должны сделать что-то вроде этого.

user.map.width = parseInt(somevariable);

Поскольку javascript свободно набирается, я никогда об этом не беспокоюсь, но в этом случае это необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...