#json
#json
Вопрос:
Как мне добавить атрибут 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;
},
Комментарии:
1. Это проблема с конвертером.
2. Покажите код JavaScript, который обрабатывает строку JSON для создания ссылок.
3. Добавлено выше. В любом случае, это часть кода, его часть скрипта очистки изображений, я думаю, что то, что я опубликовал выше, является релевантным фрагментом.
Ответ №1:
Это вопрос о 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; },
Комментарии:
1. Да, теперь, когда я понимаю, как все это соединяется, это кажется довольно простым 🙂 Спасибо за помощь — хотя, я думаю, что после «this.ImageList[index].link.href» должна быть запятая
Ответ №2:
Из того, что я могу собрать, какой бы код ни обрабатывал ваш JSON, он выполняет следующее:
- Создайте тег привязки
- Создайте тег изображения
- Установите для атрибута src тега image значение
image
в объекте JSON. - Установите для атрибута href тега привязки значение
link
в объекте JSON.
Однако с обновленным кодом это работать не будет. Вам нужно сделать следующее:
- Создайте и закрепите тег.
- Создайте тег изображения.
- Установите для атрибута src тега image значение
image
в объекте JSON. - Установите для атрибута href тега привязки значение
link.href
в объекте JSON. - Установите для атрибута rel тега привязки значение
link.rel
в объекте JSON.
Или вы могли бы просто изменить свой исходный JSON следующим образом:
{"image":"/images/image1.png", "link":"http://mylink.com", "rel":"blah"}
Тогда ваш алгоритм для реализации был бы следующим:
- Создайте и закрепите тег.
- Создайте тег изображения.
- Установите для атрибута src тега image значение
image
в объекте JSON. - Установите для атрибута href тега привязки значение
link
в объекте JSON. - Установите для атрибута rel тега привязки значение
rel
в объекте JSON.
Комментарии:
1. Ах, теперь я понимаю немного лучше. Javascript, который создает ссылки, представляет собой довольно большой скрипт, создающий программу очистки изображений. Фрагмент, который создает изображение и ссылку, теперь добавлен выше.