我仍然是 D 的新手,但是一个明显缺失的功能(对于 Web 开发人员)
http://www.digitalmars.com/d/2.0/phobos/std_json.html
是一个 mixin,它为结构和类的任意(嵌套)创建 JSON 序列化器和反序列化器。
IE。
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 的各种元编程功能?
谢谢,
克里斯。
最佳答案
是的,这是可能的(我现在有一个库可以在生产中完全做到这一点),并且 D 使用编译时反射可以很容易地实现。您需要阅读以下链接:
关于json - 如何在运行时在 D 中为结构/类自动生成 JSON 序列化器和反序列化器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7496944/