lua table与json的之间的互相转换高性能c++实现
请自行约束两种语言数据结构语法上的不同,避开如下问题: 1、json本身不约束key是否符合一个编程语言中的变量名,所以编写用于和编程语言数据结构交互的json代码时应该注意key是否正确。 2、lua没有数组,利用哈希表实现的逻辑上的数组,在中间可以存在不连续的情况时json将无法识别。 3、lua的字符串key可以和数字key共存,这对于json来说,是不允许的。 这些代码我已经用了很久了,所以暂时不多解释了,依赖c++11以上的版本, 代码挺多,有需求可以直接复制,这么多代码的目的也就是更高性能,单纯的在C++里面跑,比谷歌的实现稍微快一点点。 好了,废话不多说,上代码 #pragma once #include < string > #include <functional> #include <setjmp.h> #include <fstream> #include <vector> namespace aqx { #ifndef jsize_t typedef unsigned int jsize_t; #endif #ifndef jnumber_t typedef double jnumber_t; #endif static short constexpr jsvt_null{ 0 }; static short constexpr jsvt_string{ 1