如何使用jansson从json数组中提取无密钥值

时间:2017-11-10 15:40:47

标签: c jansson

我想从JSON中提取字符串,这些字符串在值前面没有关键描述符,但是值只是用' |'来区分。 这是我有一种输入的例子: {"数据":"这|是|的|""例如|感谢|""你|很|多|& #34;]} 请注意,在文档中,我发现有用的Jansson函数总是有一个键作为参数(但我的数组只有没有键的字符串)。如果有人可以提供帮助,我会非常感激。

1 个答案:

答案 0 :(得分:1)

对于数组的元素,您不需要任何键,因为您可以通过索引访问它们。

首先,您将数组本身作为json对象获取:

int result;
json_t *data = NULL;
result = json_unpack(json_p, "{s:o}", "data", &data);

然后你可以获得元素:

int num_data = 0;
if (data != NULL && json_is_array(data))
  num_data = json_array_size(data);

for (int i=0; i<num_data; i++)
{
   json_t *one_elem = json_array_get(data, i);
   // Do whatever has to be done...
}