Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.07.2021, 16:52
Аспирант
Отправить личное сообщение для repz Посмотреть профиль Найти все сообщения от repz
 
Регистрация: 01.12.2014
Сообщений: 59

Разбор JSON (postman)
Добрый день.
Есть ответ в формате json из postman:
Код:
{
    "took": 1,
    "responses": [
        {
            "took": 1,
            "timed_out": false,
            "_shards": {
                "total": 1,
                "successful": 1,
                "skipped": 0,
                "failed": 0
            },
            "hits": {
                "total": {
                    "value": 10000,
                    "relation": "gte"
                },
                "max_score": 2,
                "hits": [
                    {
                        "_index": "goods",
                        "_source": {
                            "id": ,
                            "title": "Первый."
                        }
                    },
                    {
                        "_index": "goods",
                        "_source": {
                            "id": ,
                            "title": "Второй."
                        }
                    }
					
					
            },
            "status": 200
        },
        {
             "took": 1,
            "timed_out": false,
            "_shards": {
                "total": 1,
                "successful": 1,
                "skipped": 0,
                "failed": 0
            },
            "hits": {
                "total": {
                    "value": 10000,
                    "relation": "gte"
                },
                "max_score": 2,
                "hits": [
                    {
                        "_index": "goods",
                        "_source": {
                            "id": ,
                            "title": "Третий."
                        }
                    },
                    {
                        "_index": "goods",
                        "_source": {
                            "id": ,
                            "title": "Четвертый."
                        }
                    },.....
Обработка:
let results = []
pm.response.json().responses.map(item => {
    item.hits.hits.map(element => {
        results.push(element._source)
    })
});


В results получаю первый , второй, третий, четвертый.
Т.к. это разные блоки можно ли как-то их разделить, что бы было
например:
Код:
первый
второй
---/разделитель/--
третий
четвертый
---/разделитель/--
.....
Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 13.07.2021, 17:46
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

let results = []
pm.response.json().responses.map((item, i) => {
    if(i !== 0 && item.hits.hits.length > 0)
        results.push({id: '', title: '---/разделитель/--'});
    item.hits.hits.forEach(element => results.push(element._source));
});
0_o
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 14.07.2021, 10:03
Аспирант
Отправить личное сообщение для repz Посмотреть профиль Найти все сообщения от repz
 
Регистрация: 01.12.2014
Сообщений: 59

То, что надо)
Спасибо.

Хотел распарсить запрос от ответов из 1 вопроса:
{"query":{"match":{"short_description":"Первый"}},"from":0,"size":5}


var response = pm.response.json();
var req = JSON.parse(request.data);
var SHD = data.short_description;


Ошибка парсинга.
JSONError: Unexpected token '{' at 2:1 {"query":{"match":{"short_description":"Первый ^

По сути нужно только то что в "short_description".

Заранее спасибо)

Последний раз редактировалось repz, 14.07.2021 в 10:40.
Ответить с цитированием
  #4 (permalink)  
Старый 14.07.2021, 13:59
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

repz, 1. не надо парсить то, что и так объект; 2. чтобы получить что-то вложенное, надо пройти по всей вложенности, а не надеяться что компьютер сам догадается чего ты от него хочешь.
var req = request.data;
var SHD = req.query.match.short_description;
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 15.07.2021, 15:08
Аспирант
Отправить личное сообщение для repz Посмотреть профиль Найти все сообщения от repz
 
Регистрация: 01.12.2014
Сообщений: 59

Aetae,
Пробовал так тоже, ошибка:
TypeError: Cannot read property 'match' of undefined
Ответить с цитированием
  #6 (permalink)  
Старый 15.07.2021, 19:25
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

console.log({
  a: typeof req,
  b: req
});

Что выводит?

Вообще это, блин, примитив из примитива. Ты должен с таким сам разбираться, иначе никуда не уедешь.
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 15.07.2021, 23:00
Аспирант
Отправить личное сообщение для repz Посмотреть профиль Найти все сообщения от repz
 
Регистрация: 01.12.2014
Сообщений: 59

Строка:
{a: "string", b: "{"index":"goods"}{"query":{"match":{"short_description":"Первый"}},"from":0,"size":5}
Ответить с цитированием
  #8 (permalink)  
Старый 15.07.2021, 23:52
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

И что это, простите, за херня? Вот это вот
{"index":"goods"}{"query":{"match":{"short_description":"Первый"}},"from":0,"size":5}
- не валидный json, откуда он у вас взялся в req?
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 16.07.2021, 00:43
Аспирант
Отправить личное сообщение для repz Посмотреть профиль Найти все сообщения от repz
 
Регистрация: 01.12.2014
Сообщений: 59

Это req от elastic.
Видимо никак его не распарсить по отдельности.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JSON массив, разбор и обработка. aj-nik Общие вопросы Javascript 2 10.10.2014 18:51
Разбор json ответа 1lider AJAX и COMET 11 23.06.2014 07:36
разбор данных Json Гугл-мен jQuery 6 22.02.2013 15:03
разбор JSON (средствами библиотеки) jekjuk jQuery 1 12.08.2010 19:10
Разбор ответа в формате Json Rush Общие вопросы Javascript 11 29.01.2010 16:57