当前位置: 首页 > news >正文

jsoncons使用之: 构造json

默认的json构造函数产生一个空的json对象。 例如

jsoncons::json image_sizing;
std::cout << image_sizing << std::endl;
//输出{}

要使用成员构造一个json对象,需要获取一个空的json对象并设置一些“名称/值”对

image_sizing.insert_or_assign("Resize To Fit",true);  // a boolean 
image_sizing.insert_or_assign("Resize Unit", "pixels");  // a string
image_sizing.insert_or_assign("Resize What", "long_edge");  // a string
image_sizing.insert_or_assign("Dimension 1",9.84);  // a double
image_sizing.insert_or_assign("Dimension 2",json::null());  // a null value

 或者,使用对象初始化列表

jsoncons::json file_settings(json::object_arg, {
	{"Image Format", "JPEG"},
	{"Color Space", "sRGB"},
	{"Limit File Size", true},
	{"Limit File Size To", 10000}
		});

要构造json数组,需要使用数组类型初始化 ,并添加一些元素

jsoncons::json color_spaces(json_array_arg);
color_spaces.push_back("sRGB");
color_spaces.push_back("AdobeRGB");
color_spaces.push_back("ProPhoto RGB");

或者使用数组初始化列表

jsoncons::json image_formats(json_array_arg, {"JPEG","PSD","TIFF","DNG"});

运算符[]提供了另一种设置名称-值对的方法。 

jsoncons::json file_export;
file_export["File Format Options"]["Color Spaces"] = std::move(color_spaces);
file_export["File Format Options"]["Image Formats"] = std::move(image_formats);
file_export["File Settings"] = std::move(file_settings);
file_export["Image Sizing"] = std::move(image_sizing);

//如果file_export[“file Format Options”]不存在,则file_export["File Format Options"]["Color Spaces"] = std::move(color_spaces);语句将创建“file Format Options”作为对象,并将“Color Spaces”放入其中。

std::cout << pretty_print(file_export) << std::endl;

 输出:

{
    "File Format Options": {
        "Color Spaces": ["sRGB","AdobeRGB","ProPhoto RGB"],
        "Image Formats": ["JPEG","PSD","TIFF","DNG"]
    },
    "File Settings": {
        "Color Space": "sRGB",
        "Image Format": "JPEG",
        "Limit File Size": true,
        "Limit File Size To": 10000
    },
    "Image Sizing": {
        "Dimension 1": 9.84,
        "Dimension 2": null,
        "Resize To Fit": true,
        "Resize Unit": "pixels",
        "Resize What": "long_edge"
    }
}

文章来源 jsoncons官方github: https://danielaparker.github.io/jsoncons/

 

相关文章:

  • 使用reserve来避免不必要的内存重新分配
  • redis 编译报错 zmalloc.h:50:10: fatal error: jemalloc/jemalloc.h: 没有那个文件或目录
  • linux下hiredis安装、C接口编程
  • redis源码学习之数据结构---双向链表
  • redis源码分析--事件驱动模型
  • ubuntu下zmq编译安装及请求-应答模式测试
  • c++输出:怎么解决数字过大时默认使用科学计数法输出的问题?
  • c++11实现一个自动注册的工厂模式
  • zmq发布-订阅模式c++实现
  • linux报错:bash: syntax error near unexpected token `(‘ --路径中有括号怎么处理?
  • golang学习总结--函数
  • golang学习总结--结构体、接口
  • 解决运行时报错:error while loading shared libraries xxx.so,cannot open shared object file
  • 超实用:linux shell光标移动常用快捷键
  • git commit之后如何撤销
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【刷算法】求1+2+3+...+n
  • Apache Zeppelin在Apache Trafodion上的可视化
  • Elasticsearch 参考指南(升级前重新索引)
  • ES6 ...操作符
  • HTTP 简介
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • javascript面向对象之创建对象
  • js对象的深浅拷贝
  • Median of Two Sorted Arrays
  • React 快速上手 - 07 前端路由 react-router
  • Vue.js-Day01
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 解析带emoji和链接的聊天系统消息
  • 跨域
  • 嵌入式文件系统
  • FaaS 的简单实践
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #etcd#安装时出错
  • #Linux(帮助手册)
  • $refs 、$nextTic、动态组件、name的使用
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (二)正点原子I.MX6ULL u-boot移植
  • (十八)SpringBoot之发送QQ邮件
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)重识new
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .NET Core 成都线下面基会拉开序幕
  • [20150629]简单的加密连接.txt
  • [ARC066F]Contest with Drinks Hard
  • [C#]DataTable常用操作总结【转】
  • [Codeforces1137D]Cooperative Game
  • [codevs 1288] 埃及分数 [IDdfs 迭代加深搜索 ]
  • [FZSZOJ 1223] 上海红茶馆
  • [github配置] 远程访问仓库以及问题解决
  • [GN] Vue3.2 快速上手 ---- 核心语法2
  • [Java][Android][Process] ProcessBuilder与Runtime差别
  • [LeetCode] 93. Restore IP Addresses 复原IP地址