summaryrefslogtreecommitdiff
path: root/contrib/json-object.vala
blob: a8058f5e5d59ea468ac07d7d4d5266a64ecc0a51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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;
        }
}