Jansson库的使用简介

博客介绍了Jansson的安装、相关API,阐述了Jansson实际处理JSON文件的方法,还提及从网上获取JSON文件并解析。提供了Jansson API的参考链接,内容实用,对处理JSON文件有指导意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Jansson的安装:

二、jansson相关的API:

https://jansson.readthedocs.io/en/latest/apiref.html#c.json_t

string

object

array

error

number

三、jansson实际如何处理JSON文件:

 1 #include <iostream>
 2 #include "jansson.h"
 3 #include <string.h>
 4 #include <stdio.h>
 5 #include <stdlib.h>
 6 
 7 using namespace std;
 8 
 9 int main() {
10     json_t val;
11     json_type eval = JSON_REAL;
12     bool Judge = 1;
13     int type = json_typeof(&val);
14     Judge = json_is_object(&val);
15     cout << "json_is_object:" << Judge << endl;
16     Judge = json_is_array(&val);
17     cout << "Json_is_array:" << Judge << endl;
18     cout << "The type of val:" << type << endl;
19 
20     json_t *array, *integer;
21     array = json_array(); // Create the json array
22     integer = json_integer(42); // Create the json integer
23     json_array_append(array,integer);
24     json_decref(integer);
25 
26     /* JSON-STRING */
27     json_auto_t *value = NULL;
28     value = json_string("Hello");
29     json_string_set(value, "World!");
30     size_t len = json_string_length(value);
31     cout << "The len of value:" << len << endl;
32 
33     /* JSON-NUMBER */
34     json_int_t number;
35     number = 100;
36     printf("number is %" JSON_INTEGER_FORMAT "\n",number);
37     number = json_integer_value(integer);
38     printf("value of integer(json_t) is %" JSON_INTEGER_FORMAT "\n",number);
39     integer = json_real(3.1415926);
40     double res = json_real_value(integer);
41     printf("The res is:%f\n",res);
42 
43     /* JSON-ARRAY */
44     json_t *Matrix = json_array();
45     json_array_append(Matrix,integer);
46     size_t Matrix_Size = json_array_size(Matrix);
47     printf("The size of Matrix:%d\n",Matrix_Size);
48 
49     /* JSON-OBJECT */
50     json_t *obj = json_object();
51     size_t obj_size = json_object_size(obj);
52     printf("The size of obj:%d\n",obj_size);
53     char *key = "Hello";
54     int back = json_object_set(obj,key,&val);
55     printf("The json_object_set correct?%d\n",back);
56 
57     json_t *json_file;
58     json_error_t error;
59 
60     /* Use the abs-route of the file can read the json file crectlly */
61     json_file = json_load_file("/home/ubuntu-bitmain/workspace/TestCpp/src/cpuminer-conf.json", 0, &error);
62     if(!json_file) printf("No json_file can read!\n");
63     obj_size = json_object_size(json_file);
64     printf("The size of json_file:%d\n",obj_size);
65     json_t *url,*user,*pass;
66     char *Key_0 = "url";
67     char *Key_1 = "user";
68     char *Key_2 = "pass";
69     url = json_object_get(json_file,Key_0);
70     user = json_object_get(json_file,Key_1);
71     pass = json_object_get(json_file,Key_2);
72 
73     Judge = json_is_string(url);
74     size_t str_length = json_string_length(url);
75     cout << "The length of url is:" << str_length << endl;
76     const char *str_res_0 = " ";
77     str_res_0 = json_string_value(url);
78     cout << "The length of url is:" << strlen(str_res_0) << endl;
79     for(int i=0;i<strlen(str_res_0);i++){
80         cout << *(str_res_0+i);
81     }
82     cout << endl;
83     cout << "The url is string" << Judge << endl;
84 
85     return 0;
86 }

 

四、从网上获取JSON文件并解析:

完~

 

转载于:https://www.cnblogs.com/uestc-mm/p/10793703.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值