On Thursday, 17 October 2013 at 02:03:28 UTC, Craig Dillabaugh
wrote:
On Thursday, 17 October 2013 at 01:47:41 UTC, DDD wrote:
Does D have any reflection/introspection?
I'd like to do something like this
class Contact
{
string first, last
int number
}
contact = json_deserialized!Contact(json_string);
Is something like that possible?
Check out Vibe.D
http://vibed.org/api/vibe.data.json/deserializeJson
This is exactly what you are looking for I believe.
For example I have the following code which works:
import vibe.d;
struct Foo {
string bar;
int num;
}
void deserializeExample() {
Json js = Json.emptyObject;
js.bar = "Hello world!";
js.num = 42;
Foo afoo = deserializeJson!Foo( js );
assert( afoo.bar == "Hello world!");
assert( afoo.num == 42 );
}
Vibe source code for deserializeJson can be viewed at:
https://github.com/rejectedsoftware/vibe.d/blob/master/source/vibe/data/json.d