Teddy_le
Teddy_le
我这几天绞尽脑汁,勉励改出了一个可以支持的样子,但是却完全失去了原有的样子,不仅有了start和end,而且参数的数量和位置也不再统一。 我觉得你这个封装的设计目的应该是,希望用简洁的格式,描述struct和json之间的转换关系。这也是为什么你的封装看起来不像是过程而像是一种声明。 我想到的一个办法,就是用一些声明语句,构造一个树来描述struct,那么这个如果这树和json解析的树相同,就可以用遍历的方法将他们两者进行转化。这样应该能保持简洁的描述,也可以处理json中各种情况,一次描述应该就可以实现两个方向的互转。毕竟C没有元信息,结构体和其中变量的描述,肯定要通过额外的方法再声明一遍。你看这个思路是不是可行?
大概是这样,可以说非常丑陋了,而且弄得很复杂,感觉也不是很靠谱 ```C typedef struct { char name[16]; } Hometown; typedef struct { int ranking; int score; } Results; typedef struct { int id; double weight; char name[10]; int attendance [10];...
我把他们拆成两个纯粹无奈之举,展开来其实是一个循环,在循环里面遍历struct 展开是下面这个样子,我这个因为需要把cjson换成json-c,其他一样的 ```c #define S2J_STRUCT_GET_ARRAY_ELEMENT_START(to_struct, from_json, type) \ { \ struct json_object *array, *array_element; \ size_t index = 0, size = 0; \ array = from_json; \ if (array) {...