我让 YAJL 解析我在包含的示例中给出的简单元素,没有问题。(字符串,整数,数组,...)
示例代码可以在这里找到:http: //lloyd.github.io/yajl/yajl-2.0.1/example_2parse_config_8c-example.html
但现在我有这种类型的 JSON 对象:
{
"cmd":2,
"properties":
[
{
"idx":40,
"val":8813.602692
},
{
"idx":41,
"val":960
},
{
"idx":42,
"val":2
},
{
"idx":48,
"val":9
}
]
}
我可以使用以下命令检索命令(请参阅链接示例中使用的变量的定义):
const char * path[] = {"cmd", (const char *) 0 };
yajl_val v = yajl_tree_get(ynode, path, yajl_t_number);
if (v)
*cmd = (commands)((int)YAJL_GET_INTEGER(v));
我可以使用以下方法获取对属性数组的引用:
int ar_sz;
const char * path[] = {"properties", (const char *) 0 };
yajl_val v = yajl_tree_get(ynode, path, yajl_t_array);
if (v)
{
ar_sz = v->u.array.len;
}
它给了我正确的数组大小,但我不知道如何从数组元素中检索嵌套元素 idx 和 val。
非常感谢任何帮助