diff options
author | Emmanuele Bassi <ebassi@openedhand.com> | 2007-11-22 16:00:35 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@openedhand.com> | 2007-11-22 16:00:35 +0000 |
commit | a6fae2d61b1cfefa742574761edc19c8d6f702f5 (patch) | |
tree | aff5eaa46f1e28506084a059bde78569052314a6 | |
parent | ea6cc8756f70d488eae128e4a01f63ce2766cc3a (diff) | |
download | json-glib-a6fae2d61b1cfefa742574761edc19c8d6f702f5.tar.gz |
Add a simple Vala serialization example
We don't provide the Serializable interface at the moment, because it
is too much C-oriented. This example shows how to serialize a class in
Vala to a JSON string.
-rw-r--r-- | contrib/json-object.vala | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/contrib/json-object.vala b/contrib/json-object.vala new file mode 100644 index 0000000..a8058f5 --- /dev/null +++ b/contrib/json-object.vala @@ -0,0 +1,40 @@ +using GLib; +using Json; + +public class Sample : GLib.Object { + public bool toggle { get; set; } + public string name { get; set; } + + public Sample () { + name = "Hello, world!"; + toggle = true; + } + + public string to_json () { + var obj = new Json.Object (); + + var node = new Json.Node (Json.NodeType.VALUE); + node.set_string (name); + obj.add_member ("name", node.copy ()); + + node = new Json.Node (Json.NodeType.VALUE); + node.set_boolean (toggle); + obj.add_member ("toggle", node.copy ()); + + var root = new Json.Node (Json.NodeType.OBJECT); + root.set_object (obj); + + var generator = new Json.Generator (); + generator.set_root (root); + + return generator.to_data (); + } + + static int main (string[] args) { + var sample = new Sample (); + + stdout.printf ("var sample = %s;\n", sample.to_json ()); + + return 0; + } +} |