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?

Reply via email to