JQuery / Javascript: вставить идентификатор в объект JSON? - PullRequest
0 голосов
/ 18 февраля 2012

Я получаю следующий объект в качестве параметра через вызов функции из flashMovie. Итак, у меня есть простая функция javascript, такая как savePro(info), которая вызывается из flashmovie.

Так что я могу просто console.log(info) и я получу это.

{"action":"setProjectAll", "application":{"proId":"new","zoomPosition":35,"scrollerPosition":0,"language":"en","timelinePosition":0}, "clips":[]}

В моем файле js есть переменная var id = 12. Эта переменная является динамической, но она всегда содержит число.

Как я могу заменить "proID":"new" внутри объекта json на id моей переменной? Итак, я хочу иметь ...

{"action":"setProjectAll", "application":{"proId":12,"zoomPosition":35,"scrollerPosition":0,"language":"en","timelinePosition":0}, "clips":[]}

впоследствии.

Понятия не имею, как это сделать? Заранее спасибо!

Ответы [ 4 ]

1 голос
/ 18 февраля 2012

Ну, если это фактический JSON текст, о котором вы говорите, вам нужно либо

  • попытка какой-нибудь необычной манипуляции со строкой или
  • разобрать, изменить, затем преобразовать в строку

Последний был бы таким ...

var obj = JSON.parse(info);  // parse the JSON into a JavaScript object

obj.application.proId = id; // modify the object

info = JSON.stringify(obj);  // stringify it into JSON if you wanted it as JSON

Если у вас действительно нет данных JSON, вы просто манипулируете ими так же, как в любой книге JavaScript для начинающих.

Это был бы тот же подход, что и вторая строка кода выше ...

info.application.proId = id; // modify the object
1 голос
/ 18 февраля 2012

Используйте точечную запись для доступа к свойству:

info.application.proId = id;

Примечание: JSON - это строковое представление, используемое для обмена.Похоже, что вы имеете дело с объектом JavaScript .

0 голосов
/ 18 февраля 2012

Вы можете получить доступ к свойствам в объекте JSON, используя точечную запись.Как это:

info.application.proId = id;
0 голосов
/ 18 февраля 2012

У вас нет "объекта json", у вас либо есть "json", который является строковым представлением вашего объекта, либо у вас есть "объект". Предполагая последнее, вы можете установить свойство следующим образом:

info.application.proId = id;

Если у вас есть JSON, вам нужно проанализировать его, чтобы создать объект, а затем установить свойство (и, если вам нужно, в виде строки, потом поверните его обратно в JSON):

info = JSON.parse(info);
info.application.proId = id;
info = JSON.stringify(info);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...