Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用于现代C+的JSON+_json语法_C++_Json_User Defined Literals - Fatal编程技术网

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})”