Basic Implementation of JSON. Capable of create a JSON string and parse a JSON string. Uses the "lazy" JSON implementation. Incapable of modify and delete variables from the objects. Contains 2 objects: JSONArray and JSONObject. Inspired in Java-Android implementation of JSON. Version 0.5.

Dependents:   mbed_networking

Committer:
PhoenixUnicamp
Date:
Sat Nov 24 17:09:28 2012 +0000
Revision:
1:ac1512fd0d1e
Parent:
0:7aaa16136d09
Basic implementation of JSON, version 0.5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
PhoenixUnicamp 1:ac1512fd0d1e 1 /* Copyright (c) 2012 Otavio Netto Zani, MIT License
PhoenixUnicamp 1:ac1512fd0d1e 2 *
PhoenixUnicamp 1:ac1512fd0d1e 3 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
PhoenixUnicamp 1:ac1512fd0d1e 4 * and associated documentation files (the "Software"), to deal in the Software without restriction,
PhoenixUnicamp 1:ac1512fd0d1e 5 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
PhoenixUnicamp 1:ac1512fd0d1e 6 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
PhoenixUnicamp 1:ac1512fd0d1e 7 * furnished to do so, subject to the following conditions:
PhoenixUnicamp 1:ac1512fd0d1e 8 *
PhoenixUnicamp 1:ac1512fd0d1e 9 * The above copyright notice and this permission notice shall be included in all copies or
PhoenixUnicamp 1:ac1512fd0d1e 10 * substantial portions of the Software.
PhoenixUnicamp 1:ac1512fd0d1e 11 *
PhoenixUnicamp 1:ac1512fd0d1e 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
PhoenixUnicamp 1:ac1512fd0d1e 13 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
PhoenixUnicamp 1:ac1512fd0d1e 14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
PhoenixUnicamp 1:ac1512fd0d1e 15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
PhoenixUnicamp 1:ac1512fd0d1e 16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
PhoenixUnicamp 1:ac1512fd0d1e 17 */
PhoenixUnicamp 1:ac1512fd0d1e 18
PhoenixUnicamp 1:ac1512fd0d1e 19
PhoenixUnicamp 1:ac1512fd0d1e 20
PhoenixUnicamp 0:7aaa16136d09 21 #include "mbed.h"
PhoenixUnicamp 0:7aaa16136d09 22 #include <string>
PhoenixUnicamp 0:7aaa16136d09 23 #include <sstream>
PhoenixUnicamp 0:7aaa16136d09 24
PhoenixUnicamp 0:7aaa16136d09 25 //CLASSES
PhoenixUnicamp 0:7aaa16136d09 26
PhoenixUnicamp 0:7aaa16136d09 27 class JSONArray;
PhoenixUnicamp 0:7aaa16136d09 28
PhoenixUnicamp 0:7aaa16136d09 29 class JSONObject{
PhoenixUnicamp 0:7aaa16136d09 30
PhoenixUnicamp 0:7aaa16136d09 31 int nValues;
PhoenixUnicamp 0:7aaa16136d09 32 string* labels;
PhoenixUnicamp 0:7aaa16136d09 33 string* values;
PhoenixUnicamp 0:7aaa16136d09 34
PhoenixUnicamp 0:7aaa16136d09 35 public:
PhoenixUnicamp 0:7aaa16136d09 36
PhoenixUnicamp 0:7aaa16136d09 37 JSONObject ();
PhoenixUnicamp 0:7aaa16136d09 38 JSONObject (string);
PhoenixUnicamp 0:7aaa16136d09 39 JSONObject (char*);
PhoenixUnicamp 0:7aaa16136d09 40
PhoenixUnicamp 0:7aaa16136d09 41 int getInt (string);
PhoenixUnicamp 0:7aaa16136d09 42 int getInt (char*);
PhoenixUnicamp 0:7aaa16136d09 43 float getFloat (string);
PhoenixUnicamp 0:7aaa16136d09 44 float getFloat (char*);
PhoenixUnicamp 0:7aaa16136d09 45 string getString (string);
PhoenixUnicamp 0:7aaa16136d09 46 string getString (char*);
PhoenixUnicamp 0:7aaa16136d09 47 JSONArray getArray (string);
PhoenixUnicamp 0:7aaa16136d09 48 JSONArray getArray (char*);
PhoenixUnicamp 0:7aaa16136d09 49 JSONObject getObject (string);
PhoenixUnicamp 0:7aaa16136d09 50 JSONObject getObject (char*);
PhoenixUnicamp 0:7aaa16136d09 51 bool getBoolean(char*);
PhoenixUnicamp 0:7aaa16136d09 52 bool getBoolean(string);
PhoenixUnicamp 0:7aaa16136d09 53 bool isNull(char*);
PhoenixUnicamp 0:7aaa16136d09 54 bool isNull(string);
PhoenixUnicamp 0:7aaa16136d09 55
PhoenixUnicamp 0:7aaa16136d09 56 string toString();
PhoenixUnicamp 0:7aaa16136d09 57
PhoenixUnicamp 0:7aaa16136d09 58 void add(string, string);
PhoenixUnicamp 0:7aaa16136d09 59 void add(string, int);
PhoenixUnicamp 0:7aaa16136d09 60 void add(string, float);
PhoenixUnicamp 0:7aaa16136d09 61 void add(string, bool);
PhoenixUnicamp 0:7aaa16136d09 62 void add(string, JSONObject);
PhoenixUnicamp 0:7aaa16136d09 63 void add(string, JSONArray);
PhoenixUnicamp 0:7aaa16136d09 64
PhoenixUnicamp 0:7aaa16136d09 65 private:
PhoenixUnicamp 0:7aaa16136d09 66 void criar(string);
PhoenixUnicamp 0:7aaa16136d09 67
PhoenixUnicamp 0:7aaa16136d09 68 };
PhoenixUnicamp 0:7aaa16136d09 69
PhoenixUnicamp 0:7aaa16136d09 70 class JSONArray{
PhoenixUnicamp 0:7aaa16136d09 71
PhoenixUnicamp 0:7aaa16136d09 72 int nValues;
PhoenixUnicamp 0:7aaa16136d09 73 string *values;
PhoenixUnicamp 0:7aaa16136d09 74
PhoenixUnicamp 0:7aaa16136d09 75
PhoenixUnicamp 0:7aaa16136d09 76 public:
PhoenixUnicamp 0:7aaa16136d09 77 JSONArray ();
PhoenixUnicamp 0:7aaa16136d09 78 JSONArray (string);
PhoenixUnicamp 0:7aaa16136d09 79 JSONArray (char*);
PhoenixUnicamp 0:7aaa16136d09 80
PhoenixUnicamp 0:7aaa16136d09 81 int getInt(int);
PhoenixUnicamp 0:7aaa16136d09 82 float getFloat (int);
PhoenixUnicamp 0:7aaa16136d09 83 string getString (int);
PhoenixUnicamp 0:7aaa16136d09 84 JSONObject getObject (int);
PhoenixUnicamp 0:7aaa16136d09 85 JSONArray getArray (int);
PhoenixUnicamp 0:7aaa16136d09 86 bool getBoolean(int);
PhoenixUnicamp 0:7aaa16136d09 87 bool isNull(int);
PhoenixUnicamp 0:7aaa16136d09 88
PhoenixUnicamp 0:7aaa16136d09 89 string toString();
PhoenixUnicamp 0:7aaa16136d09 90
PhoenixUnicamp 0:7aaa16136d09 91 void add(string);
PhoenixUnicamp 0:7aaa16136d09 92 void add(int);
PhoenixUnicamp 0:7aaa16136d09 93 void add(float);
PhoenixUnicamp 0:7aaa16136d09 94 void add(bool);
PhoenixUnicamp 0:7aaa16136d09 95 void add(JSONObject);
PhoenixUnicamp 0:7aaa16136d09 96 void add(JSONArray);
PhoenixUnicamp 0:7aaa16136d09 97
PhoenixUnicamp 0:7aaa16136d09 98 private:
PhoenixUnicamp 0:7aaa16136d09 99 void criar(string);
PhoenixUnicamp 0:7aaa16136d09 100
PhoenixUnicamp 0:7aaa16136d09 101 };
PhoenixUnicamp 0:7aaa16136d09 102
PhoenixUnicamp 0:7aaa16136d09 103 int numberOfChars(char, string);
PhoenixUnicamp 0:7aaa16136d09 104 string clear(string);
PhoenixUnicamp 0:7aaa16136d09 105 string *explode(char, string);