summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@openedhand.com>2007-11-22 16:00:35 +0000
committerEmmanuele Bassi <ebassi@openedhand.com>2007-11-22 16:00:35 +0000
commita6fae2d61b1cfefa742574761edc19c8d6f702f5 (patch)
treeaff5eaa46f1e28506084a059bde78569052314a6
parentea6cc8756f70d488eae128e4a01f63ce2766cc3a (diff)
downloadjson-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.vala40
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;
+ }
+}