Синтаксис JSON: добавить атрибут rel? - PullRequest
0 голосов
/ 09 мая 2011

Как добавить атрибут rel = blah в строку JSON? У меня есть следующее в файле JSON:

[
    {"image":"/images/image1.png", "link":"http://mylink.com"},
    {"image":"/images/image2.png", "link":"http://mylink.com"},
    {"image":"/images/image3.png", "link":"http://mylink.com"}
]

Выходные данные создают изображения и ссылки, которые я хочу на странице. Но я попытался добавить атрибут rel следующим образом:

{"image":"/images/image3.png", "link":{"rel":"blah","href":"http://mylink.com"}}
{"image":"/images/image3.png", "link":{"rel":"blah","uri":"http://mylink.com"}}

но результат всегда был один и тот же: <a href="object Object"> Кажется, что это просто, но я не могу найти правильный синтаксис где-либо.

Часть javascript скруббера изображений, который создает изображение / ссылку, такова:

 setImage: function(index) {
        this.element.empty();
        var anchor = new Element('a', {
            'href': this.imageList[index].link
        });
        this.images[index].inject(anchor);
        anchor.inject(this.element);
        this.oldIndex = index;
    },

Ответы [ 2 ]

1 голос
/ 09 мая 2011

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

setImage: function(index) {
    this.element.empty();
    var anchor = new Element('a', {
         // here it comes:
         'href': this.imageList[index].link.href,
         'rel': this.imageList[index].link.rel
         // that's it
    });
    this.images[index].inject(anchor);
    anchor.inject(this.element);
    this.oldIndex = index;
},
0 голосов
/ 09 мая 2011

Из того, что я могу собрать, любой код, который обрабатывает ваш JSON, делает следующее:

  1. Создать тег привязки
  2. Создать тег изображения
  3. Установите для атрибута src тега image значение image в объекте JSON.
  4. Установите для атрибута href тега привязки значение link в объекте JSON.

Однако с обновленным кодом это не будет работать. Вам необходимо сделать следующее:

  1. Создание и привязка тега.
  2. Создать тег изображения.
  3. Установите для атрибута src тега image значение image в объекте JSON.
  4. Установите для атрибута href тега привязки значение link.href в объекте JSON.
  5. Установите для атрибута rel тега привязки значение link.rel в объекте JSON.

Или вы можете просто изменить исходный JSON следующим образом:

{"image":"/images/image1.png", "link":"http://mylink.com", "rel":"blah"}

Тогда ваш алгоритм для реализации будет выглядеть следующим образом:

  1. Создание и привязка тега.
  2. Создать тег изображения.
  3. Установите для атрибута src тега image значение image в объекте JSON.
  4. Установите для атрибута href тега привязки значение link в объекте JSON.
  5. Установите для атрибута rel тега привязки значение rel в объекте JSON.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...