0

我正在尝试使用 libjson 库从服务器解析 json 数据。当我使用 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();
    }

谢谢。

4

0 回答 0