Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.09.2016, 19:59
Интересующийся
Отправить личное сообщение для Win_D Посмотреть профиль Найти все сообщения от Win_D
 
Регистрация: 08.09.2016
Сообщений: 24

Вывод значения из JSON с помощью JS
Всем привет.

Есть страница в формате JSON: http://www.deomid.ru/collection/tumb...ultimedia.json, на которой указаны характеристики товара. У товара есть параметр "Поставщик":
{"backoffice":true,"id":1553534,"permalink":"postavschik","title":"\u041f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a"}

В массиве значений параметров (characteristics) по этому ID (1553534) указаны следующие данные:
{"id":17397390,"property_id":1553534,"position":1,"title":"\u0410\u043b\u0441\u043e","permalink":"also"}


Вопрос в следующем: как с помощью JavaScript можно получить и вывести название поставщика (also) или его ID (1553534)? Заранее огромное спасибо.

P. S. Значения \u0410\u043b\u0441\u043e - это название поставщика в Юникоде.
Ответить с цитированием
  #2 (permalink)  
Старый 13.09.2016, 20:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,059

Win_D,
function success(data) {
var id = 1553534, title;
data.product.characteristics.some(function(el) {
   if (el.property_id == id) title = el.title;
   return title
})
alert(title)
}
Ответить с цитированием
  #3 (permalink)  
Старый 14.09.2016, 12:28
Интересующийся
Отправить личное сообщение для Win_D Посмотреть профиль Найти все сообщения от Win_D
 
Регистрация: 08.09.2016
Сообщений: 24

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

Последний раз редактировалось Win_D, 14.09.2016 в 17:59.
Ответить с цитированием
  #4 (permalink)  
Старый 14.09.2016, 12:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,059

Win_D,
<script>
data = {
    "status": "ok",
    "product": {
        "id": 63863999,
        "url": "/collection/tumby/product/porta-due-tumba-dlya-tv-i-multimedia",
        "title": "Porta Due \u0442\u0443\u043c\u0431\u0430 \u0434\u043b\u044f \u0422\u0412 \u0438 \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0430",
        "short_description": null,
        "available": true,
        "unit": "pce",
        "permalink": "porta-due-tumba-dlya-tv-i-multimedia",
        "images": [],
        "first_image": {
            "created_at": null,
            "id": null,
            "image_processing": null,
            "position": null,
            "product_id": null,
            "title": null,
            "url": "/images/no_image_thumb.jpg",
            "original_url": "/images/no_image_original.jpg",
            "medium_url": "/images/no_image_medium.jpg",
            "small_url": "/images/no_image_micro.jpg",
            "thumb_url": "/images/no_image_thumb.jpg",
            "compact_url": "/images/no_image_compact.jpg",
            "large_url": "/images/no_image_large.jpg",
            "filename": null
        },
        "category_id": 5295614,
        "canonical_url_collection_id": 5766160,
        "price_kinds": [],
        "description": null,
        "option_names": [],
        "properties": [{
            "backoffice": true,
            "id": 1709416,
            "is_hidden": false,
            "is_navigational": false,
            "position": 0,
            "permalink": "srok-dostavki",
            "title": "\u0421\u0440\u043e\u043a \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438"
        }, {
            "backoffice": true,
            "id": 1698924,
            "is_hidden": false,
            "is_navigational": false,
            "position": 1,
            "permalink": "mesto-proizvodstva",
            "title": "\u041c\u0435\u0441\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0430"
        }, {
            "backoffice": true,
            "id": 1553533,
            "is_hidden": true,
            "is_navigational": false,
            "position": 2,
            "permalink": "proizvoditel",
            "title": "\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c"
        }, {
            "backoffice": true,
            "id": 1553534,
            "is_hidden": true,
            "is_navigational": false,
            "position": 3,
            "permalink": "postavschik",
            "title": "\u041f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a"
        }, {
            "backoffice": true,
            "id": 1709429,
            "is_hidden": false,
            "is_navigational": false,
            "position": 54,
            "permalink": "instruktsiya-po-sborke",
            "title": "\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e \u0441\u0431\u043e\u0440\u043a\u0435"
        }, {
            "backoffice": true,
            "id": 1704278,
            "is_hidden": false,
            "is_navigational": false,
            "position": 55,
            "permalink": "garantiynyy-srok",
            "title": "\u0413\u0430\u0440\u0430\u043d\u0442\u0438\u0439\u043d\u044b\u0439 \u0441\u0440\u043e\u043a"
        }],
        "characteristics": [{
            "id": 17600148,
            "property_id": 1709429,
            "position": 1,
            "title": "\u043f\u0440\u0438\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f",
            "permalink": "prilagaetsya-podrobnaya-shema-i-spetsifikatsiya"
        }, {
            "id": 17697352,
            "property_id": 1704278,
            "position": 3,
            "title": "24 \u043c\u0435\u0441\u044f\u0446\u0430",
            "permalink": "24-mesyatsa"
        }, {
            "id": 17600109,
            "property_id": 1709416,
            "position": 1,
            "title": "15 \u0434\u043d\u0435\u0439",
            "permalink": "15-dney"
        }, {
            "id": 17397390,
            "property_id": 1553534,
            "position": 1,
            "title": "\u0410\u043b\u0441\u043e",
            "permalink": "also"
        }, {
            "id": 17496852,
            "property_id": 1698924,
            "position": 8,
            "title": "\u0418\u0436\u0435\u0432\u0441\u043a",
            "permalink": "izhevsk"
        }, {
            "id": 17219116,
            "property_id": 1553533,
            "position": 24,
            "title": "\u041c\u0421\u0422",
            "permalink": "mst"
        }],
        "variants": [{
            "id": 99532267,
            "available": true,
            "product_id": 63863999,
            "title": "",
            "base_price": "11600.0",
            "prices": [],
            "price": "11600.0",
            "old_price": null,
            "sku": "4PA0TM4C1",
            "barcode": null,
            "option_values": [],
            "quantity": null,
            "weight": null,
            "created_at": "2016-08-09T11:10:18+03:00",
            "updated_at": "2016-08-18T08:34:32+03:00"
        }]
    }
}

function success(data) {
var id = 1553534, title;
data.product.characteristics.some(function(el) {
   if (el.property_id == id) title = el.title;
   return title
})
alert(title)
}
success(data)
 </script>
Ответить с цитированием
  #5 (permalink)  
Старый 14.09.2016, 14:10
Интересующийся
Отправить личное сообщение для Win_D Посмотреть профиль Найти все сообщения от Win_D
 
Регистрация: 08.09.2016
Сообщений: 24

Спасибо, всё работает как надо
Ответить с цитированием
  #6 (permalink)  
Старый 14.09.2016, 17:58
Интересующийся
Отправить личное сообщение для Win_D Посмотреть профиль Найти все сообщения от Win_D
 
Регистрация: 08.09.2016
Сообщений: 24

Если будет время, помогите пожалуйста разобраться с последним вопросом. На сайте есть множество товаров, у каждого из которых имеется свой json-файл. Например:
1. Первый
2. Второй
3. Третий и т. д.

Вопрос в следующем: как с помощью JavaScript можно выполнить следующие действия?
1. Открыть json изделия
2. В разделе characteristics найти и получить значение "property_id":1553534
3. В этом же массиве (например,
{"id":17397390,"property_id":1553534,"position":1,"title":"\u0410\u043b\u0441\u043e","permalink":"also"}
) найти параметр "permalink" и получить его значение (в данном случае, это "also", хотя может быть другим)
4. Вывести значение параметра "permalink" (в данном случае, это "also")

Я буду вам очень признателен за помощь.
Ответить с цитированием
  #7 (permalink)  
Старый 14.09.2016, 18:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,059

Win_D,

function success(data) {
var id = 1553534, obj;
data.product.characteristics.some(function(el) {
   if (el.property_id == id) obj = el;
   return obj
})
alert([obj.title, obj.permalink])
}
Ответить с цитированием
  #8 (permalink)  
Старый 15.09.2016, 10:43
Интересующийся
Отправить личное сообщение для Win_D Посмотреть профиль Найти все сообщения от Win_D
 
Регистрация: 08.09.2016
Сообщений: 24

Сообщение от рони Посмотреть сообщение
Win_D,

function success(data) {
var id = 1553534, obj;
data.product.characteristics.some(function(el) {
   if (el.property_id == id) obj = el;
   return obj
})
alert([obj.title, obj.permalink])
}
Спасибо за ответ, но к сожалению этот код не работает - не выводится текст (и, похоже, скрипт не получает значение).
Ответить с цитированием
  #9 (permalink)  
Старый 15.09.2016, 10:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,059

Win_D,
не знаю как вы получаите json ...
http://plnkr.co/edit/AbP97rvnO4YtyVzqus7i?p=preview
Ответить с цитированием
  #10 (permalink)  
Старый 15.09.2016, 11:15
Интересующийся
Отправить личное сообщение для Win_D Посмотреть профиль Найти все сообщения от Win_D
 
Регистрация: 08.09.2016
Сообщений: 24

Сообщение от рони Посмотреть сообщение
Win_D,
не знаю как вы получаите json ...
http://plnkr.co/edit/AbP97rvnO4YtyVzqus7i?p=preview
Ладно, в любом случае, спасибо вам за помощь
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БД JSON вывод через jQuery Infinity178 jQuery 13 09.03.2015 21:32
Изменение масштаба в браузере с помощью js Bond Общие вопросы Javascript 3 09.04.2014 18:25
Вывод значения из JSON (stdclass) Stasigas jQuery 1 18.12.2013 00:53
Как перевести json строку в js массив? Tek Общие вопросы Javascript 1 25.03.2012 17:11
Что выбрать XML или JSON для передачи Ajax - ом из PHP в JS Gozar Общие вопросы Javascript 20 16.08.2009 23:36