我还是D的新手,但是
中的一个明显缺失的功能(针对网页开发人员)http://www.digitalmars.com/d/2.0/phobos/std_json.html
是一个mixin,它为任意(嵌套)结构和类创建JSON序列化器和反序列化器。
即
struct Dog {
string name;
int age;
}
struct Person {
mixin JSON;
string name;
int age;
string[] favouriteFoods;
Dog dog;
bool retired () { return age > 65 };
}
然后能够
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}"
使用D?
的各种元编程功能是否可行谢谢,
克里斯。
答案 0 :(得分:4)
是的,这是可能的(我现在有一个库正好在生产中完成这个),D使用编译时反射很容易实现。您需要阅读以下链接: