Bib
22.01.2018, 19:16
Решил поэкспериментировать и написать JSON парсер.
Инклуд позволяет легко извлекать необходимые данные формата JSON из ответа сервера.
Пока что доступен следующий функционал:
stock GetStringValue(data[], key[], output[], output_size = sizeof output) // возвращает в output[] строковое значение ключа
stock GetIntValue(data[], key[]) // возвращает целочисленное значение ключа
stock GetObject(data[], key[], output[], output_size = sizeof output) // возвращает в output[] содержимое объекта
// в ближайшее время добавлю массивы
Пример использования:
#include <a_http>
main()
{
HTTP(0, HTTP_GET, "freegeoip.net/json/youtube.com", "", "OnResponse");
}
forward OnResponse(index, response_code, data[]);
public OnResponse(index, response_code, data[])
{
new ip[22];
GetStringValue(data, "ip", ip);
print(ip);
new country_name[30];
GetStringValue(data, "country_name", country_name);
print(country_name);
printf("zipcode = %i", GetIntValue(data, "zip_code"));
}
Содержимое data[] при запросе выше:
{"ip":"172.217.12.238","country_code":"US","country_name":"United States","region_code":"CA","region_name":"California","city":"Mountain View","zip_code":"94043","time_zone":"America/Los_Angeles","latitude":37.4192,"longitude":-122.0574,"metro_code":807}
GitHub (https://github.com/EmanOK/JSON-Parser-for-Pawn) | Основы JSON (https://www.8host.com/blog/osnovy-raboty-s-json/)
Инклуд позволяет легко извлекать необходимые данные формата JSON из ответа сервера.
Пока что доступен следующий функционал:
stock GetStringValue(data[], key[], output[], output_size = sizeof output) // возвращает в output[] строковое значение ключа
stock GetIntValue(data[], key[]) // возвращает целочисленное значение ключа
stock GetObject(data[], key[], output[], output_size = sizeof output) // возвращает в output[] содержимое объекта
// в ближайшее время добавлю массивы
Пример использования:
#include <a_http>
main()
{
HTTP(0, HTTP_GET, "freegeoip.net/json/youtube.com", "", "OnResponse");
}
forward OnResponse(index, response_code, data[]);
public OnResponse(index, response_code, data[])
{
new ip[22];
GetStringValue(data, "ip", ip);
print(ip);
new country_name[30];
GetStringValue(data, "country_name", country_name);
print(country_name);
printf("zipcode = %i", GetIntValue(data, "zip_code"));
}
Содержимое data[] при запросе выше:
{"ip":"172.217.12.238","country_code":"US","country_name":"United States","region_code":"CA","region_name":"California","city":"Mountain View","zip_code":"94043","time_zone":"America/Los_Angeles","latitude":37.4192,"longitude":-122.0574,"metro_code":807}
GitHub (https://github.com/EmanOK/JSON-Parser-for-Pawn) | Основы JSON (https://www.8host.com/blog/osnovy-raboty-s-json/)