Я пытаюсь проанализировать данные JSON с сервера с библиотекой libjson. он отлично работает, когда я использую компилятор g ++. Теперь я использую компилятор arm-none-linux-gnueabi-g ++.
он не вызывает ошибок компиляции, но при запуске программы выдает ошибку сегментации, когда программа достигает встроенной функции json_parse (json).
вот код
curl = curl_easy_init();
if(curl) {stringstream bb;
bb<<"softland3.chillarcards.com/track/campustest/payment_type.php" ;
curl_easy_setopt(curl, CURLOPT_URL,strdup(bb.str().c_str()));
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_to_string);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
res = curl_easy_perform(curl);
cout << response <<endl;
vector <clas> vv;
json_char * json;
JSONNODE_ITERATOR i;
std::string node_name;
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
JSONNODE *n = json_new(JSON_NODE);
if(json_is_valid(response.c_str()))
{
json = json_strip_white_space(response.c_str());
n = json_parse(json);
ParseJSON(n,vv);
// cout<<"size of vector " <<vv.size()<<endl;
// for (std::vector<clas>::iterator i = vv.begin(); i != vv.end(); i++)
// {
// cout<<i->First<<endl;
// cout<<i->Second<<endl;
// }
}
else{
cout << "ERROR IN Validation" <<endl;
}
// json_free(json);
json_free_all();
curl_easy_cleanup(curl);
}
curl_global_cleanup();
}
Благодарю.
Задача ещё не решена.
Других решений пока нет …