MbedJSONValue library example

Dependencies:   MbedJSONValue mbed

Files at this revision

API Documentation at this revision

Comitter:
hillkim7
Date:
Thu Jan 22 09:11:31 2015 +0000
Commit message:
MbedJSONValue library example

Changed in this revision

MbedJSONValue.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 6c7d76010005 MbedJSONValue.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MbedJSONValue.lib	Thu Jan 22 09:11:31 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/samux/code/MbedJSONValue/#10a99cdf7846
diff -r 000000000000 -r 6c7d76010005 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Jan 22 09:11:31 2015 +0000
@@ -0,0 +1,79 @@
+#include "mbed.h"
+#include "MbedJSONValue.h"
+
+/*
+* The MbedJSONValue is memory hungry class as I think.
+* If your platform has enough SRAM, you can go for it.
+* The library itself works fine but user need to caution using it.
+* It's fine with this:
+*  MbedJSONValue &ele = demo["menu"]["popup"]["menuitem"][i];
+* It's big problem with this(without &):
+*  MbedJSONValue ele = demo["menu"]["popup"]["menuitem"][i];
+*/
+void parse() {
+    MbedJSONValue demo;
+
+    const char *json = "{\"string\": \"it works\", \"number\": 3.14, \"integer\":5}";
+
+    parse(demo, json);
+    printf("string =%s\r\n" , demo["string"].get<string>().c_str());
+    printf("number =%f\r\n" , demo["number"].get<double>());
+    printf("integer =%d\r\n" , demo["integer"].get<int>());
+}
+
+void serialize() {
+    MbedJSONValue v;
+    MbedJSONValue inner;
+    string val = "tt";
+
+    v["aa"] = val;
+    v["bb"] = 1.66;
+    inner["test"] = true;
+    inner["integer"] =  1.0;
+    v["inner"] =  inner;
+
+    string str = v.serialize();
+    printf("serialized content = %s\r\n" ,  str.c_str());
+}
+
+void advanced() {
+    MbedJSONValue demo;
+    const char *jsonsoure =
+        "{\"menu\": {"
+        "\"id\": \"f\","
+        "\"popup\": {"
+        "  \"menuitem\": ["
+        "    {\"v\": \"0\"},"
+        "    {\"v\": \"1\"},"
+        "    {\"v\": \"2\"}"
+        "   ]"
+        "  }"
+        "}"
+        "}";
+
+    std::string err;
+    parse(demo, jsonsoure, jsonsoure + strlen(jsonsoure), &err);
+    printf("res error? %s\r\n", err.c_str());
+
+    printf("id =%s\r\n", demo["menu"]["id"].get<string>().c_str());
+
+    for (int i = 0; i < demo["menu"]["popup"]["menuitem"].size(); ++i) {
+        MbedJSONValue &ele = demo["menu"]["popup"]["menuitem"][i];
+        const string &s = ele["v"].get<string>();
+
+        printf("menu item value =%s\r\n",s.c_str());
+    }
+
+    printf("serialized content = %s\r\n" , demo.serialize().c_str());
+}
+
+int main() {
+    printf("Starting MbedJSON\r\n");
+    printf(">>> parsing \r\n");
+    parse();
+    printf(">>> serializing \r\n");
+    serialize();
+    printf(">>> advanced parsing \r\n");
+    advanced();
+    printf("Ending MbedJSON\r\n");
+}
diff -r 000000000000 -r 6c7d76010005 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Jan 22 09:11:31 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/4fc01daae5a5
\ No newline at end of file