用C语言解析JSON数组
我从服务器返回了以下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\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
]
]
}
]
}
]
}