Как заполнить вектор или массив с помощью JSON C++
Пожалуйста, помогите мне заполнить векторы или массивы из запроса CURL через Json response.
У меня есть ответ с сайта OSRM (вы можете увидеть его ниже)/ Это формат JSON, но я не могу разобрать его и использовать в своем коде позже. Я не понимаю, как это сделать. Может кто-нибудь мне помочь?
{ ":" точка трассировки
[
{"location": [73.103166,49.817488], "name": "some street1", "hint": "10UDgP ___ k =", "matchings_index": 0, "waypoint_index": 0, "alternatives_count": 0}, {" location ": [73.104389,49.817199]," name ":" some street2 "," hint ":" xUUDgP ___ k = "," matchings_index ": 0," waypoint_index ": 1," alternatives_count ": 0}, {" location ": [73.108378,49.815211], "name": "some street3", "hint": "- EUDgP ___ k =", "matchings_index": 0, "waypoint_index": 2,"alternatives_count": 0}], "matchings":[{"distance": 480.5,"duration": 31.6, "weight": 31.6, "weight_name": "routability", "geometry": "i ~` oHy} d} Lx @ sF | A_K | @gFpFuD ", "достоверность": 0,579856,"ноги": [{"расстояние":93,5,"продолжительность":6,2,"вес":6,2,"сводка": "", "шаги":[]},{"расстояние":387,"длительность":25,4,"вес":25,4,"сводка": "", "шаги":[]}] } ], "код": "ОК"}
Я скачал https://github.com/nlohmann/json но я не могу его использовать. Пожалуйста, дай мне что-нибудь, чтобы решить проблему. Мой код VS2015 ниже
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "wldap32.lib")
#pragma comment(lib, "Normaliz.lib")
#pragma comment(lib, "crypt32.lib")
#define CURL_STATICLIB
#ifdef _DEBUG
# pragma comment (lib, "curl/libcurl_a_Debug.lib")
# pragma comment (lib, "curl/libssl_Debug.lib")
# pragma comment (lib, "curl/libcrypto_Debug.lib")
#else
# pragma comment (lib, "curl/libcurl_a_Release.lib")
#endif // DEBUG _DEBUG
#include "curl\curl.h"
#include "stdafx.h"
#include "iostream"
#include "string"
#include <iomanip>
#include "nlohmann/json.hpp"
using json = nlohmann::json;
static int writer(char *data, size_t size, size_t nmemb, std::string *writerData)
{
if (writerData == NULL)
return 0;
writerData->append(data, size*nmemb);
return size * nmemb;
}
int main()
{
json JStruct ;
std::string content;
//std::cout << "Some_Text";
std::vector<double> myLatpoints;
std::vector<double> myLonpoints;
curl_global_init(CURL_GLOBAL_ALL);
CURL *curl = nullptr;
curl = curl_easy_init();
curl_global_cleanup();
if (curl)
{
curl_easy_setopt(curl, CURLOPT_URL, "http://127.0.0.1:5000/match/v1/driving/73.103130,49.817423;73.104353,49.817137;73.10824,49.81517");
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &content);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
CURLcode code = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
//curl_global_cleanup();
JStruct = content;
// HELP ME TO FILL UP MY VECTORS HERE PLEASE
std::cin.get() ;
return 0;
}