用C语言解析JSON数组

用C语言解析JSON数组,c,arrays,json,json-c,C,Arrays,Json,Json C,我从服务器返回了以下JSON,我正在尝试访问值(时间戳/数据): 我正在使用,并且正在使用稍微修改过的版本。但是,当我试图使用json\u parse\u数组访问值部分时,我不断收到分段错误(内核转储) 如何访问值部分?感谢@wiseveri提供的提示,通过以下内容访问值部分: //gcc json_c_test.c-ljson-c-o json_c_test&&clear&&./json_c_test #包括 #包括 无效json_解析_输入(json_对象*jobj) { int存在,i,j

我从服务器返回了以下JSON,我正在尝试访问
(时间戳/数据):

我正在使用,并且正在使用稍微修改过的版本。但是,当我试图使用
json\u parse\u数组访问
部分时,我不断收到
分段错误(内核转储)


如何访问
部分?

感谢@wiseveri提供的提示,通过以下内容访问
部分:

//gcc json_c_test.c-ljson-c-o json_c_test&&clear&&./json_c_test
#包括
#包括
无效json_解析_输入(json_对象*jobj)
{
int存在,i,j,k,l;
字符*结果;
json_object*querysobj、*resultsObj、*valuesObj、*tmpquerys、*tmpResults、*tmpValues、*tmpSeparateVals;
/*获取查询键*/
exists=json\u object\u object\u get\u ex(jobj,“querys”和querysobj);
if(FALSE==存在)
{
printf(“在JSON中找不到查询”);
返回;
}
/*循环查询数组*/
对于(i=0;i
感谢@wiseveri提供的提示,通过以下内容访问了
值部分:

//gcc json_c_test.c-ljson-c-o json_c_test&&clear&&./json_c_test
#包括
#包括
无效json_解析_输入(json_对象*jobj)
{
int存在,i,j,k,l;
字符*结果;
json_object*querysobj、*resultsObj、*valuesObj、*tmpquerys、*tmpResults、*tmpValues、*tmpSeparateVals;
/*获取查询键*/
exists=json\u object\u object\u get\u ex(jobj,“querys”和querysobj);
if(FALSE==存在)
{
printf(“在JSON中找不到查询”);
返回;
}
/*循环查询数组*/
对于(i=0;i
是否有指向分段故障发生位置的指针?您是否尝试过
valgrind
查看在哪里可以访问未初始化的内存(seg故障的一个可能原因)@wiseveri根据我发现的-故障发生在这里:
int arraylen=json\u object\u array\u length(jarray)/*获取
json\u parse\u array
函数中数组*/
的长度,当它到达
values
部分时。您确定指定的键存在吗?你传递的对象不是空的吗?@wiseveri We
{
   "queries": [
     {
       "sample_size": 1,
       "results": [
         {
           "name": "data",
           "group_by": [
             {
               "name": "type",
               "type": "number"
             }
           ],
           "tags": {
             "hostname": [
               "host"
             ]
           },
           "values": [
             [
               1438775895302,
               143
             ]
           ]
         }
       ]
     }
   ]
 }