小编Bas*_*sti的帖子

使用YAJL在C中解析复杂的JSON子对象

我有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
        }
    ]
Run Code Online (Sandbox Code Playgroud)

}

我可以检索命令(参见链接示例中使用的变量的定义):

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));
Run Code Online (Sandbox Code Playgroud)

我可以使用以下命令获取属性数组的引用:

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;
  }
Run Code Online (Sandbox Code Playgroud)

它给了我正确的数组大小,但我不知道如何从数组元素中检索嵌套元素idx和val.

非常感谢任何帮助

c json yajl

3
推荐指数
1
解决办法
3385
查看次数

标签 统计

c ×1

json ×1

yajl ×1