powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Json x-superobject
11 сообщений из 11, страница 1 из 1
Json x-superobject
    #39713921
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток!

Я нашёл пример, как получить в переменную ссылку на фото ....
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
{
"response":{
"count":1,
"items":[
{
"id":246365,
"date":1463913029,
"out":0,
"user_id":53453566,
"read_state":1,
"title":" ... ",
"body":"",
"deleted":1,
"attachments":[
{
"type":"photo",
"photo":{
"id":416603645,
"album_id":-3,
"owner_id":53453566,
"photo_75":"http:\/\/cs636717.vk.me\/v636717206\/8e61\/gSCbceBaWRo.jpg",
"photo_130":"http:\/\/cs636717.vk.me\/v636717206\/8e62\/d3GZYEzjB2k.jpg",
"photo_604":"http:\/\/cs636717.vk.me\/v636717206\/8e63\/FqoPyZe1Lx8.jpg",
"width":491,
"height":488,
"text":"",
"date":1463913029,
"access_key":"8bc37bf13f8d6df162"
}
}
]
}
]
}
}


получить ссылку на фото вот так:
Код: pascal
1.
photo:=SO(response).O['response'].A['items'].O[0].A['attachments'].O[0].O['photo'].s['photo_75'];


То-есть нужно пройтись как бы по дереву Json, сначала объект response, потом масссив items.... Но что это .O[0] ?

У меня есть вот такой кусок Json, из него нужно вырезать first_name last_name
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
{
"response":[
{
"id":438520578,
"first_name":"Инна",
"last_name":"Силина",
"photo_50":"https:\/\/vk.com\/images\/camera_50.png?ava=1"
}
]
}



Но как получить эти значения, если объект безымянный, а response в данном случае, является массивом.

И как и говорил, мне не понятно для чего это .O[0] ?
...
Рейтинг: 0 / 0
Json x-superobject
    #39713923
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9ne,

это обращение к элементу с индексом ноль массива.
Код: plaintext
1.
A['items']
- это массив items (в общем случае - массив объектов).
Код: plaintext
1.
A['items'].O[0]
- это нулевой (т.е. первый по порядку) элемент массива items
...
Рейтинг: 0 / 0
Json x-superobject
    #39713935
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Котовасия,
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
{
"response":{
"count":1,
"items":[
{
"id":246365,
"date":1463913029,
"out":0,
"user_id":53453566,
"read_state":1,
"title":" ... ",
"body":"",
"deleted":1,
"attachments":[
{
"type":"photo",
"photo":{
"id":416603645,
"album_id":-3,
"owner_id":53453566,
"photo_75":"http:\/\/cs636717.vk.me\/v636717206\/8e61\/gSCbceBaWRo.jpg",
"photo_130":"http:\/\/cs636717.vk.me\/v636717206\/8e62\/d3GZYEzjB2k.jpg",
"photo_604":"http:\/\/cs636717.vk.me\/v636717206\/8e63\/FqoPyZe1Lx8.jpg",
"width":491,
"height":488,
"text":"",
"date":1463913029,
"access_key":"8bc37bf13f8d6df162"
}
}
]
}
]
}
}


первый по порядку элемент массива - "id", но для чего обращаться сначала к нему, а потом к следующему массиву "attachments" ?
Почему не сразу
Код: pascal
1.
photo:=SO(response).O['response'].A['items'].A['attachments'].O['photo'].s['photo_75'];



и как будет выглядеть обращение к елементу массива response, из этого json:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
{
"response":[
{
"id":438520578,
"first_name":"Инна",
"last_name":"Силина",
"photo_50":"https:\/\/vk.com\/images\/camera_50.png?ava=1"
}
]
}



Извините, если я не догоняю элементарных вещей))
Заранее спасибо.
...
Рейтинг: 0 / 0
Json x-superobject
    #39713937
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что сначала надо разобраться с самим json-форматом и узнать, что у него внутри (а там все просто -- либо объект {}, либо массив [], либо конкретное значение поля. Удобный сервис, куда можно вставить jsonи он распарсит его и представит в виде дерева:
http://jsonparseronline.com

После чего уже можно и код соответствующий вызывать и строить пути.
...
Рейтинг: 0 / 0
Json x-superobject
    #39713941
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiПотому что сначала надо разобраться с самим json-форматом и узнать, что у него внутри (а там все просто -- либо объект {}, либо массив [], либо конкретное значение поля. Удобный сервис, куда можно вставить jsonи он распарсит его и представит в виде дерева:
http://jsonparseronline.com

После чего уже можно и код соответствующий вызывать и строить пути.
Так это я понял, мне не понятно как выдрать first_name, если изначально у объкта нет имени, далее идёт массив под названием response, потом опять безямянный объект... как к ним обращаться к этим безымянным?
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
{
"response":[
{
"id":438520578,
"first_name":"Инна",
"last_name":"Силина",
"photo_50":"https:\/\/vk.com\/images\/camera_50.png?ava=1"
}
]
}
...
Рейтинг: 0 / 0
Json x-superobject
    #39713942
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9ne,

Там нет ничего безымянного. Квадратные скобки -- это массив, т.е. список однотипных объектов. В данном случае он там один. Т.е. образаться к нему надо через индекс 0.

"Response", [0], "first_name".
...
Рейтинг: 0 / 0
Json x-superobject
    #39713946
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9ne,

разбирись сперва с самим форматом, а потом уже пытайся его использовать, все очень-очень просто: https://www.json.org/json-ru.html
...
Рейтинг: 0 / 0
Json x-superobject
    #39713951
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jpath / jsonpath - принцип адресации
библиотеки - у всех свои реализации первого
...
Рейтинг: 0 / 0
Json x-superobject
    #39713954
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDi...Квадратные скобки -- это массив, т.е. список однотипных объектов ...
Нет, просто упорядоченный список значений. Фишка именно в упорядоченности, значения могут быть любого (для json) типа, вперемешку в рамках одного массива: строки, числа, объекты, массивы, значения true/false, null-ы...
...
Рейтинг: 0 / 0
Json x-superobject
    #39713959
alfangur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в вашем примере O[0]:
O - Object\Объект (Это такой тип в JSON)
0 - число 0, потому что он находиться в массиве, если бы этот объект не находился в массиве он бы имел ключ с название, тогда бы пришлось вместо нуля указывать название ключа.

Вам уже товарищи посоветовали изучить эту тему.
...
Рейтинг: 0 / 0
Json x-superobject
    #39713960
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавлю, что к элементу любого типа в SO можно обращаться как к элементу типа "объект", это иногда удобно, например, для проверки наличия элемента по имени (впрочем, для этого есть и иные методы) или для получения строкового представления значения элемента.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Json x-superobject
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]