Решил поэкспериментировать и написать JSON парсер.
Инклуд позволяет легко извлекать необходимые данные формата JSON из ответа сервера.
Пока что доступен следующий функционал:
PHP код:
stock GetStringValue(data[], key[], output[], output_size = sizeof output) // возвращает в output[] строковое значение ключа
stock GetIntValue(data[], key[]) // возвращает целочисленное значение ключа
stock GetObject(data[], key[], output[], output_size = sizeof output) // возвращает в output[] содержимое объекта
// в ближайшее время добавлю массивы
Пример использования:
PHP код:
#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[] при запросе выше:
PHP код:
{"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}