MbedJSONValue library example

Dependencies:   MbedJSONValue mbed

Committer:
hillkim7
Date:
Thu Jan 22 09:11:31 2015 +0000
Revision:
0:6c7d76010005
MbedJSONValue library example

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hillkim7 0:6c7d76010005 1 #include "mbed.h"
hillkim7 0:6c7d76010005 2 #include "MbedJSONValue.h"
hillkim7 0:6c7d76010005 3
hillkim7 0:6c7d76010005 4 /*
hillkim7 0:6c7d76010005 5 * The MbedJSONValue is memory hungry class as I think.
hillkim7 0:6c7d76010005 6 * If your platform has enough SRAM, you can go for it.
hillkim7 0:6c7d76010005 7 * The library itself works fine but user need to caution using it.
hillkim7 0:6c7d76010005 8 * It's fine with this:
hillkim7 0:6c7d76010005 9 * MbedJSONValue &ele = demo["menu"]["popup"]["menuitem"][i];
hillkim7 0:6c7d76010005 10 * It's big problem with this(without &):
hillkim7 0:6c7d76010005 11 * MbedJSONValue ele = demo["menu"]["popup"]["menuitem"][i];
hillkim7 0:6c7d76010005 12 */
hillkim7 0:6c7d76010005 13 void parse() {
hillkim7 0:6c7d76010005 14 MbedJSONValue demo;
hillkim7 0:6c7d76010005 15
hillkim7 0:6c7d76010005 16 const char *json = "{\"string\": \"it works\", \"number\": 3.14, \"integer\":5}";
hillkim7 0:6c7d76010005 17
hillkim7 0:6c7d76010005 18 parse(demo, json);
hillkim7 0:6c7d76010005 19 printf("string =%s\r\n" , demo["string"].get<string>().c_str());
hillkim7 0:6c7d76010005 20 printf("number =%f\r\n" , demo["number"].get<double>());
hillkim7 0:6c7d76010005 21 printf("integer =%d\r\n" , demo["integer"].get<int>());
hillkim7 0:6c7d76010005 22 }
hillkim7 0:6c7d76010005 23
hillkim7 0:6c7d76010005 24 void serialize() {
hillkim7 0:6c7d76010005 25 MbedJSONValue v;
hillkim7 0:6c7d76010005 26 MbedJSONValue inner;
hillkim7 0:6c7d76010005 27 string val = "tt";
hillkim7 0:6c7d76010005 28
hillkim7 0:6c7d76010005 29 v["aa"] = val;
hillkim7 0:6c7d76010005 30 v["bb"] = 1.66;
hillkim7 0:6c7d76010005 31 inner["test"] = true;
hillkim7 0:6c7d76010005 32 inner["integer"] = 1.0;
hillkim7 0:6c7d76010005 33 v["inner"] = inner;
hillkim7 0:6c7d76010005 34
hillkim7 0:6c7d76010005 35 string str = v.serialize();
hillkim7 0:6c7d76010005 36 printf("serialized content = %s\r\n" , str.c_str());
hillkim7 0:6c7d76010005 37 }
hillkim7 0:6c7d76010005 38
hillkim7 0:6c7d76010005 39 void advanced() {
hillkim7 0:6c7d76010005 40 MbedJSONValue demo;
hillkim7 0:6c7d76010005 41 const char *jsonsoure =
hillkim7 0:6c7d76010005 42 "{\"menu\": {"
hillkim7 0:6c7d76010005 43 "\"id\": \"f\","
hillkim7 0:6c7d76010005 44 "\"popup\": {"
hillkim7 0:6c7d76010005 45 " \"menuitem\": ["
hillkim7 0:6c7d76010005 46 " {\"v\": \"0\"},"
hillkim7 0:6c7d76010005 47 " {\"v\": \"1\"},"
hillkim7 0:6c7d76010005 48 " {\"v\": \"2\"}"
hillkim7 0:6c7d76010005 49 " ]"
hillkim7 0:6c7d76010005 50 " }"
hillkim7 0:6c7d76010005 51 "}"
hillkim7 0:6c7d76010005 52 "}";
hillkim7 0:6c7d76010005 53
hillkim7 0:6c7d76010005 54 std::string err;
hillkim7 0:6c7d76010005 55 parse(demo, jsonsoure, jsonsoure + strlen(jsonsoure), &err);
hillkim7 0:6c7d76010005 56 printf("res error? %s\r\n", err.c_str());
hillkim7 0:6c7d76010005 57
hillkim7 0:6c7d76010005 58 printf("id =%s\r\n", demo["menu"]["id"].get<string>().c_str());
hillkim7 0:6c7d76010005 59
hillkim7 0:6c7d76010005 60 for (int i = 0; i < demo["menu"]["popup"]["menuitem"].size(); ++i) {
hillkim7 0:6c7d76010005 61 MbedJSONValue &ele = demo["menu"]["popup"]["menuitem"][i];
hillkim7 0:6c7d76010005 62 const string &s = ele["v"].get<string>();
hillkim7 0:6c7d76010005 63
hillkim7 0:6c7d76010005 64 printf("menu item value =%s\r\n",s.c_str());
hillkim7 0:6c7d76010005 65 }
hillkim7 0:6c7d76010005 66
hillkim7 0:6c7d76010005 67 printf("serialized content = %s\r\n" , demo.serialize().c_str());
hillkim7 0:6c7d76010005 68 }
hillkim7 0:6c7d76010005 69
hillkim7 0:6c7d76010005 70 int main() {
hillkim7 0:6c7d76010005 71 printf("Starting MbedJSON\r\n");
hillkim7 0:6c7d76010005 72 printf(">>> parsing \r\n");
hillkim7 0:6c7d76010005 73 parse();
hillkim7 0:6c7d76010005 74 printf(">>> serializing \r\n");
hillkim7 0:6c7d76010005 75 serialize();
hillkim7 0:6c7d76010005 76 printf(">>> advanced parsing \r\n");
hillkim7 0:6c7d76010005 77 advanced();
hillkim7 0:6c7d76010005 78 printf("Ending MbedJSON\r\n");
hillkim7 0:6c7d76010005 79 }