Jansson库的使用简介
一、Jansson的安装:
二、jansson相关的API:
https://jansson.readthedocs.io/en/latest/apiref.html#c.json_t
string
object
array
error
number
三、jansson实际如何处理JSON文件:
#include <iostream>
#include "jansson.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h> using namespace std; int main() {
json_t val;
json_type eval = JSON_REAL;
bool Judge = ;
int type = json_typeof(&val);
Judge = json_is_object(&val);
cout << "json_is_object:" << Judge << endl;
Judge = json_is_array(&val);
cout << "Json_is_array:" << Judge << endl;
cout << "The type of val:" << type << endl; json_t *array, *integer;
array = json_array(); // Create the json array
integer = json_integer(); // Create the json integer
json_array_append(array,integer);
json_decref(integer); /* JSON-STRING */
json_auto_t *value = NULL;
value = json_string("Hello");
json_string_set(value, "World!");
size_t len = json_string_length(value);
cout << "The len of value:" << len << endl; /* JSON-NUMBER */
json_int_t number;
number = ;
printf("number is %" JSON_INTEGER_FORMAT "\n",number);
number = json_integer_value(integer);
printf("value of integer(json_t) is %" JSON_INTEGER_FORMAT "\n",number);
integer = json_real(3.1415926);
double res = json_real_value(integer);
printf("The res is:%f\n",res); /* JSON-ARRAY */
json_t *Matrix = json_array();
json_array_append(Matrix,integer);
size_t Matrix_Size = json_array_size(Matrix);
printf("The size of Matrix:%d\n",Matrix_Size); /* JSON-OBJECT */
json_t *obj = json_object();
size_t obj_size = json_object_size(obj);
printf("The size of obj:%d\n",obj_size);
char *key = "Hello";
int back = json_object_set(obj,key,&val);
printf("The json_object_set correct?%d\n",back); json_t *json_file;
json_error_t error; /* Use the abs-route of the file can read the json file crectlly */
json_file = json_load_file("/home/ubuntu-bitmain/workspace/TestCpp/src/cpuminer-conf.json", , &error);
if(!json_file) printf("No json_file can read!\n");
obj_size = json_object_size(json_file);
printf("The size of json_file:%d\n",obj_size);
json_t *url,*user,*pass;
char *Key_0 = "url";
char *Key_1 = "user";
char *Key_2 = "pass";
url = json_object_get(json_file,Key_0);
user = json_object_get(json_file,Key_1);
pass = json_object_get(json_file,Key_2); Judge = json_is_string(url);
size_t str_length = json_string_length(url);
cout << "The length of url is:" << str_length << endl;
const char *str_res_0 = " ";
str_res_0 = json_string_value(url);
cout << "The length of url is:" << strlen(str_res_0) << endl;
for(int i=;i<strlen(str_res_0);i++){
cout << *(str_res_0+i);
}
cout << endl;
cout << "The url is string" << Judge << endl; return ;
}
四、从网上获取JSON文件并解析:
完~
Jansson库的使用简介的更多相关文章
- 【液晶模块系列基础视频】4.2.X-GUI图形界面库-画矩形函数简介
[液晶模块系列基础视频]4.2.X-GUI图形界面库-画矩形函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地址: ...
- 【c++】标准模板库STL入门简介与常见用法
一.STL简介 1.什么是STL STL(Standard Template Library)标准模板库,主要由容器.迭代器.算法.函数对象.内存分配器和适配器六大部分组成.STL已是标准C++的一部 ...
- GNU Readline 库及编程简介
用过 Bash 命令行的一定知道,Bash 有几个特性: TAB 键可以用来命令补全 ↑ 或 ↓ 键可以用来快速输入历史命令 还有一些交互式行编辑快捷键: C-A / C-E 将光标移到行首/行尾 C ...
- 安装jansson库【JSON库C语言版】
本次操作在Ubuntu 14.04下进行,其他的系统大同小异,安装软件时请根据系统版本进行调整. 1.下载jansson源码: git clone https://github.com/akheron ...
- JSP标准标签库(JSTL)--JSTL简介与安装
对于MVC设计模式来讲,我们一直强调,在一个JSP钟scriptlet代码越少越好,但是只靠以前的概念很难实现,因为标签的开发特别麻烦,所以为了简化标签,也为了让标签更具备一些通用性,所以一般在开发中 ...
- 开源高性能网络库Libevent的简介
Libevent是什么? Libevent 是一个用C语言编写的.轻量级的开源高性能网络库. 官网:http://libevent.org/ 优点: (1)事件驱动,高性能 (2)轻量级,专注于网络 ...
- GNU Readline 库及编程简介【转】
转自:https://www.cnblogs.com/hazir/p/instruction_to_readline.html 用过 Bash 命令行的一定知道,Bash 有几个特性: TAB 键可以 ...
- iOS开发——高级篇——换肤、静态库
一.换肤 1.思路1> 解决方案1,使用颜色作为图片素材的命名关键字 问题1:要保证每套图片的文件名 颜色+ 名称.png的格式比较麻烦 问题2:如果要将某一个图片应用到其他皮肤不方便2> ...
- 自己动手写一个iOS 网络请求库的三部曲[转]
代码示例:https://github.com/johnlui/Swift-On-iOS/blob/master/BuildYourHTTPRequestLibrary 开源项目:Pitaya,适合大 ...
随机推荐
- Nginx OCSP
#开启 vim /path/to/path/conf/nginx.conf ..... events{ ...... 省略..... } http { ..... server{ listen 44 ...
- ESP32开发之Windows开发环境
电脑出了问题linux系统下的环境不知道怎么就挂了,在一次搭建,总是出错,没办法,只能在win10下一试. 1 下载交叉编译工具,最新版 找到并下载最新的工具链: https://dl.espress ...
- C++ 中set
set特点: 所有元素不会重复,重复插入已经有的新值无效: 所有元素按顺序排列:unordered_set除外 键和值相同,所以set中的值是不可更改的 set的各成员函数列表如下: 1.begin( ...
- Java语言实现 Base64 加密 & 解密
Java语言实现 Base64 加密 & 解密 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法. Base64 ...
- vs code 设置 保存自动格式化vue代码
配置 ESLint (需安装 Prettier - Code formatter 插件) command + shift + p 打开用户设置 // vscode默认启用了根据文件类型自动设置tab ...
- “vmware 未能初始化监视器设备”的解决方法
从挂起状态唤醒时出现"vmware 未能初始化监视器设备"的提示,在cmd中输入命令 net start vmci net start vmx86 可能还不能成功启动,提示&quo ...
- SQL-T
Mysql函数.语句记录 增加 INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) 删除 DELETE FROM 表名称 WHERE 列名 ...
- Django 数据库操作
Django 数据库操作 Django运算表达式与Q对象/F对象 1 模型查询 概述: 1 查询集:表示从数据库中获取的对象的集合 2 查询集可以有多个过滤器,通过 逻辑运算符连接 3 过滤器就是一个 ...
- SQL语句规范
SQLStructure Query Language,结构化查询语言 1.规范(1)mysql对于SQL语句不区分大小写,SQL语句关键字尽量大写 show databases;show DataB ...
- nginx一些高级配置
参数: https://www.wangbokun.com/%E8%BF%90%E7%BB%B4/2018/07/21/Nginx.html 免费证书等 1/ nginx代理hue限制上传文件大小 ...