json-c中的键名

雪茄人

我正在使用json-c解析以下JSON字符串:

{
  "root": {
    "a": "1",
    "b": "2",
    "c": "3"
  }
}

而且,我有以下C代码。上面的JSON存储在变量b中。

json_object *new_obj, *obj1, *obj2;
int exists;

new_obj = json_tokener_parse(b); 
exists=json_object_object_get_ex(new_obj,"a",&obj1); 
if(exists==false) { 
  printf("key \"a\" not found in JSON"); 
  return; 
} 
exists=json_object_object_get_ex(new_obj,"b",&obj2); 
if(exists==false) { 
  printf("key \"b\" not found in JSON"); 
  return; 
}

使用json_object_get_ex从键“ a”获取值时使用的正确键名是什么?

我上面的JSON不起作用(两个查询都存在false),但对于以下JSON却起作用。我敢肯定,这与对密钥“ a”的“路径”使用哪个密钥的误解有关。

{      
   "a": "1",
   "b": "2",
   "c": "3"
}
雪茄人

好的,我弄清楚了,就像我说的那样,我误会了json-c如何解析原始JSON文本并将其表示为父节点和子节点。

以下代码正在运行。问题是我试图从原始的json_object获取子节点,这是不正确的。我首先必须获取根对象,然后再从根获取子对象。

json_object *new_obj, *root_obj, *obj1, *obj2;
int exists;

new_obj = json_tokener_parse(b); 
exists=json_object_object_get_ex(new_obj,"root",&root_obj);
if(exists==false) { 
  printf("\"root\" not found in JSON"); 
  return; 
} 
exists=json_object_object_get_ex(root_obj,"a",&obj1); 
if(exists==false) { 
  printf("key \"a\" not found in JSON"); 
  return; 
} 
exists=json_object_object_get_ex(root_obj,"b",&obj2); 
if(exists==false) { 
  printf("key \"b\" not found in JSON"); 
  return; 
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从 JSON 中获取键名

来自分类Dev

检查嵌套JSON中的键名

来自分类Dev

json键名中的双点

来自分类Dev

检查嵌套json中的键名

来自分类Dev

从 JSON 响应中的键名中删除句点

来自分类Dev

使用键名作为增量整数在Objective C中解析JSON

来自分类Dev

在.json字典中编辑/重命名键名

来自分类Dev

在 Postgres 中获取 JSON 字段键名

来自分类Dev

如何从php的结果中获取json键名?

来自分类Dev

验证值是否在具有相同键名的Json数组中

来自分类Dev

在JQuery中如何从JSON字符串读取键名?

来自分类Dev

使用python / bash缩短json对象中的键名

来自分类Dev

将键名附加到 json 数组结果中的值

来自分类Dev

如何从json字符串中删除键名

来自分类Dev

使用 spring boot 动态更改 JSON 中字段的键名

来自分类Dev

C#如何解析没有键名的json数据?

来自分类Dev

如果JSON数据的数据键名称中包含“ /”,如何在javascript中获取json数据

来自分类Dev

如何通过jq从现有json中的值输出具有新键名的json

来自分类Dev

如何在不将其设为 json 数组的情况下替换 json 文件中的键名

来自分类Dev

PySpark-重命名JSON中的键名作为CSV文件中的字符串列存储

来自分类Dev

在java脚本中从json获取键的值(将键名存储在变量中并使用它)

来自分类Dev

Angular JS无法解析键名称中带有(@)的嵌套JSON键

来自分类Dev

从文本文件中检索的json格式的数据无法通过键名读取

来自分类Dev

不用所有键名就可以在Go中解码JSON

来自分类Dev

如何在Javascript中通过键名和值获取json的子级部分?

来自分类Dev

在深度嵌套的JSON中为特定的键名称选择特定的所有键路径和值

来自分类Dev

如何在Jq中组合(连接)包含公共键名但唯一值的JSON对象

来自分类Dev

在 JSON 数组中创建一个键名不断变化的键值对

来自分类Dev

C#使用以字符串开头的键名反序列化JSON

Related 相关文章

  1. 1

    从 JSON 中获取键名

  2. 2

    检查嵌套JSON中的键名

  3. 3

    json键名中的双点

  4. 4

    检查嵌套json中的键名

  5. 5

    从 JSON 响应中的键名中删除句点

  6. 6

    使用键名作为增量整数在Objective C中解析JSON

  7. 7

    在.json字典中编辑/重命名键名

  8. 8

    在 Postgres 中获取 JSON 字段键名

  9. 9

    如何从php的结果中获取json键名?

  10. 10

    验证值是否在具有相同键名的Json数组中

  11. 11

    在JQuery中如何从JSON字符串读取键名?

  12. 12

    使用python / bash缩短json对象中的键名

  13. 13

    将键名附加到 json 数组结果中的值

  14. 14

    如何从json字符串中删除键名

  15. 15

    使用 spring boot 动态更改 JSON 中字段的键名

  16. 16

    C#如何解析没有键名的json数据?

  17. 17

    如果JSON数据的数据键名称中包含“ /”,如何在javascript中获取json数据

  18. 18

    如何通过jq从现有json中的值输出具有新键名的json

  19. 19

    如何在不将其设为 json 数组的情况下替换 json 文件中的键名

  20. 20

    PySpark-重命名JSON中的键名作为CSV文件中的字符串列存储

  21. 21

    在java脚本中从json获取键的值(将键名存储在变量中并使用它)

  22. 22

    Angular JS无法解析键名称中带有(@)的嵌套JSON键

  23. 23

    从文本文件中检索的json格式的数据无法通过键名读取

  24. 24

    不用所有键名就可以在Go中解码JSON

  25. 25

    如何在Javascript中通过键名和值获取json的子级部分?

  26. 26

    在深度嵌套的JSON中为特定的键名称选择特定的所有键路径和值

  27. 27

    如何在Jq中组合(连接)包含公共键名但唯一值的JSON对象

  28. 28

    在 JSON 数组中创建一个键名不断变化的键值对

  29. 29

    C#使用以字符串开头的键名反序列化JSON

热门标签

归档