參考資訊:
https://github.com/json-c/json-c/tree/master
main.c
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <json-c/json.h>
#define JSON_FILE "test.json"
#define JSON_VAL "myval"
int main(int argc, char **argv)
{
int val = 0;
struct json_object *jfile = NULL;
jfile = json_object_from_file(JSON_FILE);
if (jfile != NULL) {
struct json_object *jval = NULL;
json_object_object_get_ex(jfile, JSON_VAL, &jval);
val = json_object_get_int(jval);
printf("old myval: %d\n", val);
val = 5678;
json_object_object_add(jfile, JSON_VAL, json_object_new_int(val));
json_object_object_get_ex(jfile, JSON_VAL, &jval);
val = json_object_get_int(jval);
printf("new myval: %d\n", val);
json_object_to_file_ext(JSON_FILE, jfile, JSON_C_TO_STRING_PRETTY);
json_object_put(jfile);
}
return 0;
}
編譯、執行
$ cd
$ git clone https://github.com/json-c/json-c
$ cd json-c
$ mkdir build
$ cd build
$ cmake ..
$ make -j4
$ sudo make install
$ cd
$ echo '{ "myval":1234 }' > test.json
$ gcc main.c -o test -ljson-c
$ LD_LIBRARY_PATH=/usr/local/lib/ ./test
old myval: 1234
new myval: 5678
$ cat test.json
{
"myval":5678
}