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

How to extract keyless values from json array using jansson

我想从 JSON 中提取字符串,该字符串的值前面没有键描述符,但值仅由“|”分隔。

这是我的输入类型示例:

{"data":["this|is|an|","example|thank|","you|very|much|"]}

请注意,在文档中,我发现有用的 Jansson 函数总是有一个键作为参数(但我的数组只有没有键的字符串)。如果有人能提供帮助,我将不胜感激。

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

首先你得到数组本身作为一个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...
}