Наиболее частый формат взаимодействия является JSON.
В разработке инструмент, который позволит создавать боты общающиеся с сайтами через Api разработчиков сайтов.
На данный момент реализуется парсер JSON формата для возможности получать и выделять необходимую информацию с ответа.
У кого есть желание, тестируется не описанная на данный момент функция parserjson.
Код для тестирования:
CODE:
string исходник="";
string Tt;
if (fopen ("C:\json.txt", "r")!=0)//открываем файл для чтения "r"
{
while (freadline(Tt))исходник=исходник+Tt;
fclose();
}
messagebox (исходник);
messagebox (parserjson(Rez_Json, исходник));
string Tt;
if (fopen ("C:\json.txt", "r")!=0)//открываем файл для чтения "r"
{
while (freadline(Tt))исходник=исходник+Tt;
fclose();
}
messagebox (исходник);
messagebox (parserjson(Rez_Json, исходник));
В файле json.txt должен находиться формат JSON.
Пример:
CODE:
{
"firstName": "Иван",
"lastName": "Иванов",
"address":
{
"streetAddress": "Московское ш., 101, кв.101",
"city": "Ленинград",
"postalCode": 101101
},
"phoneNumbers":
[
"812 123-1234",
"916 123-4567",
{
"Info":"No",
"MobPhone":"Yes"
}
]
}
"firstName": "Иван",
"lastName": "Иванов",
"address":
{
"streetAddress": "Московское ш., 101, кв.101",
"city": "Ленинград",
"postalCode": 101101
},
"phoneNumbers":
[
"812 123-1234",
"916 123-4567",
{
"Info":"No",
"MobPhone":"Yes"
}
]
}
При запуске вышеуказанного кода с таким файлом, Кибор будет выводить распарсенную информацию.
Вывод состоит из пары Ключ = Значение
Доступ к элементам JSON реализован похожим образом как это сделано в JavaScript.
Пример вывода:
lastName ключ. Иванов значение этого ключа
Цитата:
lastName = Иванов
address.city состоит из двух ключей. address и элемента объекта city
Цитата:
address.city = Ленинград
phoneNumbers это массив. phoneNumbers[1] указывает на второй элемент массива.
Цитата:
phoneNumbers[1]=916 123-4567
phoneNumbers[2].Info указывает на третий элемент массива phoneNumbers, в состав которого входит объект. По элементу объекта Info мы узнаем значение.
Цитата:
phoneNumbers[2].Info = No
Пример сложного формата:
products[1].options.15[0] = 47
Цитата:
{
"user_id" : 10,
"session_id" : "2c2l3h4ii271aojentejtdcmh3",
"products":
[
{
"product_id" : 15,
"options" :
{
"15" : [45, 47],
"18" : 52
},
"quantity" : 1,
"price" : 1500
},
{
"product_id" : 16,
"options" :
{
"15" : [47,48],
"18" : 51
},
"quantity" : 2,
"price" : 1000
}
]
}
"user_id" : 10,
"session_id" : "2c2l3h4ii271aojentejtdcmh3",
"products":
[
{
"product_id" : 15,
"options" :
{
"15" : [45, 47],
"18" : 52
},
"quantity" : 1,
"price" : 1500
},
{
"product_id" : 16,
"options" :
{
"15" : [47,48],
"18" : 51
},
"quantity" : 2,
"price" : 1000
}
]
}
data[0].images[1].url =(для просмотра ссылки Вам необходимо авторизоваться)
data[0].attributes[1].value = 2015
Цитата:
{
"data": [
{
"id": 123,
"status": "active",
"url": "https://www.olx.ua/oferta/url.html",
"created_at": "2018-02-02 09:35:16",
"activated_at": "2018-02-02 09:32:52",
"valid_to": "2018-03-04 09:32:52",
"title": "This is title",
"description": "This is description",
"category_id": 123,
"advertiser_type": "private",
"external_id": 12345,
"external_url": "http://myshop.com/advert/123",
"contact": {
"name": "John",
"phone": 123123123,
"location": {
"city_id": 1,
"district_id": null,
"latitude": 53.123,
"longitude": 17.123
}
},
"images": [
{
"url": "https://www.olx.ua/advert-picture-1.jpg"
},
{
"url": "https://www.olx.ua/advert-picture-2.jpg"
}
],
"price": {
"value": 123,
"currency": "PLN",
"negotiable": false,
"trade": false
},
"salary": null,
"attributes": [
{
"code": "model",
"value": "cts",
"values": null
},
{
"code": "year",
"value": 2015,
"values": null
}
],
"courier": null
}
]
}
"data": [
{
"id": 123,
"status": "active",
"url": "https://www.olx.ua/oferta/url.html",
"created_at": "2018-02-02 09:35:16",
"activated_at": "2018-02-02 09:32:52",
"valid_to": "2018-03-04 09:32:52",
"title": "This is title",
"description": "This is description",
"category_id": 123,
"advertiser_type": "private",
"external_id": 12345,
"external_url": "http://myshop.com/advert/123",
"contact": {
"name": "John",
"phone": 123123123,
"location": {
"city_id": 1,
"district_id": null,
"latitude": 53.123,
"longitude": 17.123
}
},
"images": [
{
"url": "https://www.olx.ua/advert-picture-1.jpg"
},
{
"url": "https://www.olx.ua/advert-picture-2.jpg"
}
],
"price": {
"value": 123,
"currency": "PLN",
"negotiable": false,
"trade": false
},
"salary": null,
"attributes": [
{
"code": "model",
"value": "cts",
"values": null
},
{
"code": "year",
"value": 2015,
"values": null
}
],
"courier": null
}
]
}
В случае успеха функция по очереди вернет все ключи и значения. Возврат функции 1.
Проверить валидность записи JSON можно тут
В случае ошибки выкладывайте JSON и в каком месте неверно выводит.