如何有效地在Linux环境下使用C语言解析JSON数据?

Linux环境下使用C语言解析JSON数据,可以使用多种开源库,以下是两种常用的JSON解析库及其使用方法:

1. cJSON库

如何有效地在Linux环境下使用C语言解析JSON数据?插图1
(图片来源网络,侵删)

cJSON是一个轻量级的JSON解析库,适合用于嵌入式系统和资源受限的环境。

安装与配置

1、下载并解压cJSON

```sh

wget http://sourceforge.net/projects/json-c/files/json-c/cJSON_x86.tar.bz2

如何有效地在Linux环境下使用C语言解析JSON数据?插图3
(图片来源网络,侵删)

tar -xjvf cJSON_x86.tar.bz2

```

2、编译示例代码

```c

#include <stdio.h>

如何有效地在Linux环境下使用C语言解析JSON数据?插图5
(图片来源网络,侵删)

#include <stdlib.h>

#include "cJSON.h"

int main(int argc, char* argv[]) {

char buf[1024] = "{"date":"20181128"}";

cJSON *root = cJSON_Parse(buf);

if (root == NULL) {

printf("parse error

");

return -1;

}

cJSON *value = cJSON_GetObjectItem(root, "date");

if (value == NULL) {

printf("getvalue error

");

cJSON_Delete(root);

return -1;

}

char *data = cJSON_Print(value);

if (data == NULL) {

printf("printf error

");

cJSON_Delete(root);

return -1;

}

printf("data=%s

", data);

free(data);

cJSON_Delete(root);

return 0;

}

```

3、编译命令

```sh

gcc json.c -o json -I /path/to/cJSON/include/cjson/ -L /path/to/cJSON/lib -lcjson

```

2. json-c库

json-c是一个更全面的JSON解析库,支持更多的功能,如引用计数、内存管理等。

安装与配置

1、安装json-c

```sh

git clone https://github.com/json-c/json-c.git

cd json-c

sh autogen.sh

./configure --enable-threading

make

make install

```

2、编译示例代码

```c

#include <stdio.h>

#include <json-c/json.h>

int main() {

const char *text = "{"name":"John","age":30,"city":"New York"}";

struct json_object *parsed_json;

struct json_object *name;

struct json_object *age;

struct json_object *city;

/* This is how you actually parse the JSON string into an object */

parsed_json = json_tokener_parse(text);

/* Get name */

name = json_object_object_get_ex(parsed_json, "name", &k);

if (name == NULL) {

fprintf(stderr, "Could not get 'name' from JSON

");

exit(EXIT_FAILURE);

}

printf("Name: %s

", json_object_get_string(name));

/* Get age */

age = json_object_object_get_ex(parsed_json, "age", &k);

if (age == NULL) {

fprintf(stderr, "Could not get 'age' from JSON

");

exit(EXIT_FAILURE);

}

printf("Age: %d

", json_object_get_int(age));

/* Get city */

city = json_object_object_get_ex(parsed_json, "city", &k);

if (city == NULL) {

fprintf(stderr, "Could not get 'city' from JSON

");

exit(EXIT_FAILURE);

}

printf("City: %s

", json_object_get_string(city));

return 0;

}

```

3、编译命令

```sh

gcc json.c -o json -ljson-c

```

是两种在Linux环境下使用C语言解析JSON数据的方法和示例代码,cJSON适用于简单的JSON解析需求,而json-c则提供了更多的功能和灵活性,根据具体需求选择合适的库进行开发。

到此,以上就是小编对于linux c json 解析的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/71259.html

小末小末
上一篇 2024年10月8日 07:36
下一篇 2024年10月8日 07:47

相关推荐