C++ 用于现代C+的JSON+_json语法
使用以下语法:C++ 用于现代C+的JSON+_json语法,c++,json,user-defined-literals,C++,Json,User Defined Literals,使用以下语法: json j = "{ \"happy\": true, \"pi\": 3.141 }"_json; 我想知道他们是如何做到这一点的 我不理解以下文档中的字符串文本json语法。: (序列化/反序列化) 请注意,在不附加_json后缀的情况下,传递的字符串文本不会被解析,而只是用作json字符串值。也就是说,json j=“{\'happy\':true,\'pi\':3.141}”只存储字符串“{”happy:true,“pi:3.141}”,而不是解析实际对象 基本上,如
json j = "{ \"happy\": true, \"pi\": 3.141 }"_json;
我想知道他们是如何做到这一点的
我不理解以下文档中的字符串文本json语法。:
(序列化/反序列化)
请注意,在不附加_json后缀的情况下,传递的字符串文本不会被解析,而只是用作json字符串值。也就是说,json j=“{\'happy\':true,\'pi\':3.141}”只存储字符串“{”happy:true,“pi:3.141}”,而不是解析实际对象
基本上,如果不在末尾添加_json,编译器就无法知道您打算将其存储为json对象,因此它只会将其保存为文档中的标准字符串:
(序列化/反序列化)
请注意,在不附加_json后缀的情况下,传递的字符串文本不会被解析,而只是用作json字符串值。也就是说,json j=“{\'happy\':true,\'pi\':3.141}”只存储字符串“{”happy:true,“pi:3.141}”,而不是解析实际对象
基本上,如果不在末尾添加json,编译器就无法知道您打算将其存储为json对象,因此它只会将其保存为添加到语言中的标准字符串。定义用户定义的字符串文字如下所示:
MyType operator"" _my_udl(char const*, std::size_t);
它的工作原理几乎与常规函数调用完全相同。当您有“some string”\u my\u udl
时,编译器将生成一个调用运算符“”\u my\u udl
,并传入字符串文字和大小
这就是Niels Lohmann的json库对\u json
所做的事情;它是一个UDL,相当于对添加到该语言中的json::parse
C++11的调用。定义用户定义的字符串文字如下所示:
MyType operator"" _my_udl(char const*, std::size_t);
它的工作原理几乎与常规函数调用完全相同。当您有“some string”\u my\u udl
时,编译器将生成一个调用运算符“”\u my\u udl
,并传入字符串文字和大小
这就是Niels Lohmann的json库对
\u json
所做的事情;这是一个UDL,相当于调用json::parse
使用原始字符串将是一个很好的加法:R“({“happy”:true,“pi”:3.141})”\u json
:-)使用原始字符串将是一个很好的加法:R”({“happy”:true,“pi”:3.141})”