On 8/22/14, 3:33 AM, Sönke Ludwig wrote:
Am 22.08.2014 02:42, schrieb Ary Borenszweig:
Say I have a class Person with name (string) and age (int) with a
constructor that receives both. How would I create an instance of a
Person from a json with the json stream?
Suppose the json is this:
{"age": 10, "name": "John"}
And the class is this:
class Person {
this(string name, int age) {
// ...
}
}
Without a serialization framework it would in theory work like this:
JSONValue v = parseJSON(`{"age": 10, "name": "John"}`);
auto p = new Person(v["name"].get!string, v["age"].get!int);
unfortunately the operator overloading doesn't work like this currently,
so this is needed:
JSONValue v = parseJSON(`{"age": 10, "name": "John"}`);
auto p = new Person(
v.get!(Json[string])["name"].get!string,
v.get!(Json[string])["age"].get!int);
But does this parse the whole json into JSONValue? I want to create a
Person without creating an intermediate JSONValue for the whole json.
Can this be done?