nlohmann json:实现map和struct的互转

这篇具有很好参考价值的文章主要介绍了nlohmann json:实现map和struct的互转。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

可以借助json实现map和struct的互转:文章来源地址https://www.toymoban.com/news/detail-680628.html

#include <iostream>
#include <string>
#include <variant>
#include <nlohmann/json.hpp>
using namespace std;
using json = nlohmann::json;

using VDdata = variant<int, string>;
using MData = map<string, VDdata>;

namespace nlohmann {
 
template <typename T, typename... Ts>
void variant_from_json(const nlohmann::json &j, std::variant<Ts...> &data) {
    try {
        data = j.get<T>();
    } catch (...) {
    }
}
 
template <typename... Ts>
struct adl_serializer<std::variant<Ts...>>
{
    static void to_json(nlohmann::json &j, const std::variant<Ts...> &data) {
        std::visit([&j](const auto &v) { j = v; }, data);
    }
 
    static void from_json(const nlohmann::json &j, std::variant<Ts...> &data) {
        (variant_from_json<Ts>(j, data), ...);
    }
};
 
};

template<cl

到了这里,关于nlohmann json:实现map和struct的互转的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • numpy.array 与 字符串的互转

    此处特指由 numpy.array 转换而得字符串,如上文的 s 。 numpy 没有给直接转换的函数,需要自己写

    2024年02月11日
    浏览(37)
  • java MultipartFile和File 最简单的互转

    MultipartFile和File 的区别 MuitipartFile 是 Spring 框架中用来处理文件上传的接口,它封装了文件上传的信息,比如文件名、文件类型等。 File 是Java 标准库中提供的文件操作类,用于描述文件信息,比如文件路径、文件大小等 总的来说,MultipantFile 是用来处理文件上传的,而

    2024年02月10日
    浏览(41)
  • R语言批量把数值变量和因子变量的互转

    #我们以rms包的lung数据集为例 library(rms) data-lung #这里有两种方法, #第1是知道需要转化的变量在哪几列; #第2知道需要转化的变量名 str(data) #假设我们想转化inst/status/sex/三个变量的类型 #图1先看看变量类型和处于第几列 str(data) #inst/status/sex为数值型,分别在第1列,第3列,第

    2024年01月23日
    浏览(40)
  • 【java】Java基础-数字与字符串的互转汇总

    1、通过ToString() 方法, Double 就是一个包装类,String s1 = Double. toString (num); Integer同理 2、通过valueof() 方法, 本质上还是调用 toString() 方法,String s2 = String. valueOf (num); 3、技巧性,第三种没有借助包装类 String s3 =\\\"\\\"+num; string 和int之间的转换 string转换成int  :Integer.valueOf(\\\"12\\\") 或者

    2023年04月12日
    浏览(49)
  • Js水几个基础知识点:数组的操作,字符串和数组之间的互转,持续补充,欢迎关注

    一、插入 / 删除元素: 我们就不从创建开始讲了,那个太基础了,js创建数组一般都直接let arr = […,…,…],有部分仁兄喜欢new Array(…, …, …),这样看起来可能高级点,结果是一样的哈。 这里我们直接来讨论插入元素: 1、在末尾插入 / 删除元素(push / pop,操作原数组)

    2024年02月09日
    浏览(59)
  • nlohmann json:类型检查

    nlohmann提供了成员函数type(),用于返回当前的json数据类型: 可以根据type进行类型检查:

    2024年02月13日
    浏览(36)
  • 开源库nlohmann json使用备忘

    nlohmann/json是一个用于解析JSON的开源C++库,口碑一流,无需额外安装其他第三方库,还支持单个头文件模式,使用起来非常方便直观。 从官网https://github.com/nlohmann/json的Release页面下载单个 json.hpp 即可直接使用,无需单独编译。 下面以示例的方式罗列nlohmann/json库的基本使用方

    2024年02月16日
    浏览(32)
  • 【C++】使用 nlohmann 解析 json 文件

    nlohman json GitHub - nlohmann/json: JSON for Modern C++ 是一个为现代C++(C++11)设计的JSON解析库,主要特点是 易于集成,仅需一个头文件,无需安装依赖 易于使用,可以和STL无缝对接,使用体验近似python中的json 1. json初始化 1.1 从文件初始化 1.2 从字符串初始化 方式1 R表示json字符串中

    2024年02月10日
    浏览(36)
  • [C++ Json开源库] nlohmann安装与使用

    nlohmann json GitHub - nlohmann/json: JSON for Modern C++ 是一个为现代C++(C++11)设计的JSON解析库,主要特点是: 1、易于集成,仅需一个头文件,无需安装依赖 2、易于使用,可以和STL无缝对接,使用体验近似python中的json Linux下: 拉取nlohmann库文件 自己建立一个项目工程文件夹, 将i

    2024年04月11日
    浏览(34)
  • nlohmann json:通过items遍历object/array

    编译运行输出: key: one, value: 1 key: two, value: 2 key: 0, value: 1 key: 1, value: 2 key: 2, value: 4 key: 3, value: 8 key: 4, value: 16  可以看到对于object可以通过key()和value()拿到键值对 对

    2024年02月13日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包