如何在运行时在D中为结构/类自动生成JSON序列化器和反序列化器?
我对D还是个新手,但在D中有一个明显缺失的特性(对于web开发人员而言) 是一个mixin,它为任意结构和类(嵌套)创建JSON序列化器和反序列化器 i、 e 然后才能如何在运行时在D中为结构/类自动生成JSON序列化器和反序列化器?,json,serialization,d,Json,Serialization,D,我对D还是个新手,但在D中有一个明显缺失的特性(对于web开发人员而言) 是一个mixin,它为任意结构和类(嵌套)创建JSON序列化器和反序列化器 i、 e 然后才能 auto p = Person("\"name\":\"Fred\",\"age\":45,\"favouriteFoods\":[\"cheese\",\"bananas\"],\"dog\":{\"name\":\"Rover\",\"age\":7}"); p.dog.name -> "rover" p.favo
auto p = Person("\"name\":\"Fred\",\"age\":45,\"favouriteFoods\":[\"cheese\",\"bananas\"],\"dog\":{\"name\":\"Rover\",\"age\":7}");
p.dog.name -> "rover"
p.favouriteFoods[1] -> "bananas"
p.retired() -> false
及
使用D的各种元编程特性,这可能吗
谢谢
Chris。是的,这是可能的(我现在有一个库,它在生产中正是这样做的),并且D使得使用编译时反射实现非常容易。您需要阅读以下链接:
auto p = Person("\"name\":\"Fred\",\"age\":45,\"favouriteFoods\":[\"cheese\",\"bananas\"],\"dog\":{\"name\":\"Rover\",\"age\":7}");
p.dog.name -> "rover"
p.favouriteFoods[1] -> "bananas"
p.retired() -> false
p.toJSON(); -> "\"name\":\"Fred\",\"age\":45,\"favouriteFoods\":[\"cheese\",\"bananas\"],\"dog\":{\"name\":\"Rover\",\"age\":7}"