From 699292b0580d91d9997bd3ac68c25088b87bf7bb Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Mon, 3 Nov 2014 21:29:55 +0100 Subject: [PATCH] Arduino example are now compiling --- .../IndentedPrintExample.ino | 53 +++++++----------- .../JsonGeneratorExample.ino | 55 +++++++++++-------- .../JsonParserExample/JsonParserExample.ino | 55 +++++++++---------- library.properties | 8 +++ src/ArduinoJson.h | 17 ++++++ 5 files changed, 104 insertions(+), 84 deletions(-) create mode 100644 library.properties create mode 100644 src/ArduinoJson.h diff --git a/examples/IndentedPrintExample/IndentedPrintExample.ino b/examples/IndentedPrintExample/IndentedPrintExample.ino index 15a5daa2..069b8f40 100644 --- a/examples/IndentedPrintExample/IndentedPrintExample.ino +++ b/examples/IndentedPrintExample/IndentedPrintExample.ino @@ -3,41 +3,28 @@ * Benoit Blanchon 2014 - MIT License */ -#include +#include -using namespace ArduinoJson::Generator; +using namespace ArduinoJson::Internals; -void setup() -{ - Serial.begin(9600); - - JsonObject<1> json; - json["key"] = "value"; - - IndentedPrint serial(Serial); - serial.setTabSize(4); - - serial.println("This is at indentation 0"); - serial.indent(); - serial.println("This is at indentation 1"); - serial.println("This is also at indentation 1"); - serial.indent(); - serial.println("This is at indentation 2"); - - serial.println("You can print JSON here, as usual:"); - serial.println(json); - serial.println(); - - serial.println("But you can also prettyPrint JSON here:"); - json.prettyPrintTo(serial); - serial.println(); - - serial.unindent(); - serial.unindent(); - serial.println("This is back at indentation 0"); +void setup() { + Serial.begin(9600); + + IndentedPrint serial(Serial); + serial.setTabSize(4); + + serial.println("This is at indentation 0"); + serial.indent(); + serial.println("This is at indentation 1"); + serial.println("This is also at indentation 1"); + serial.indent(); + serial.println("This is at indentation 2"); + + serial.unindent(); + serial.unindent(); + serial.println("This is back at indentation 0"); } -void loop() -{ - +void loop() { + // not used in this example } \ No newline at end of file diff --git a/examples/JsonGeneratorExample/JsonGeneratorExample.ino b/examples/JsonGeneratorExample/JsonGeneratorExample.ino index faf218d3..f7b1d3ad 100644 --- a/examples/JsonGeneratorExample/JsonGeneratorExample.ino +++ b/examples/JsonGeneratorExample/JsonGeneratorExample.ino @@ -1,32 +1,43 @@ -/* - * Arduino JSON library - Generator example - * Benoit Blanchon 2014 - MIT License - */ +// Copyright Benoit Blanchon 2014 +// MIT License +// +// Arduino JSON library +// https://github.com/bblanchon/ArduinoJson -#include +#include -using namespace ArduinoJson::Generator; +void setup() { + Serial.begin(9600); -void setup() -{ - Serial.begin(9600); + StaticJsonBuffer<200> jsonBuffer; - JsonArray<2> array; - array.add<6>(48.756080); // 6 is the number of decimals to print - array.add<6>(2.302038); // if not specified, 2 digits are printed + JsonArray& array = jsonBuffer.createArray(); + array.add(48.756080, 6); // 6 is the number of decimals to print + array.add(2.302038, 6); // if not specified, 2 digits are printed - JsonObject<3> root; - root["sensor"] = "gps"; - root["time"] = 1351824120; - root["data"] = array; + JsonObject& root = jsonBuffer.createObject(); + root["sensor"] = "gps"; + root["time"] = 1351824120; + root["data"] = array; - Serial.print(root); // {"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]} + root.printTo(Serial); + // This prints: + // {"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]} - Serial.println(); - root.prettyPrintTo(Serial); // same string indented + Serial.println(); + + root.prettyPrintTo(Serial); + // This prints: + // { + // "sensor": "gps", + // "time": 1351824120, + // "data": [ + // 48.756080, + // 2.302038 + // ] + // } } -void loop() -{ - +void loop() { + // not used in this example } \ No newline at end of file diff --git a/examples/JsonParserExample/JsonParserExample.ino b/examples/JsonParserExample/JsonParserExample.ino index 5c391bac..c5d8f6a2 100644 --- a/examples/JsonParserExample/JsonParserExample.ino +++ b/examples/JsonParserExample/JsonParserExample.ino @@ -1,40 +1,37 @@ -/* -* Arduino JSON library - Parser Example -* Benoit Blanchon 2014 - MIT License -*/ +// Copyright Benoit Blanchon 2014 +// MIT License +// +// Arduino JSON library +// https://github.com/bblanchon/ArduinoJson -#include +#include -using namespace ArduinoJson::Parser; +void setup() { + Serial.begin(9600); -void setup() -{ - Serial.begin(9600); + StaticJsonBuffer<200> jsonBuffer; - char json [] = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}"; + char json[] = + "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}"; - JsonParser<16> parser; + JsonObject& root = jsonBuffer.parseObject(json); - JsonObject root = parser.parse(json); + if (!root.success()) { + Serial.println("parseObject() failed"); + return; + } - if (!root.success()) - { - Serial.println("JsonParser.parse() failed"); - return; - } + const char* sensor = root["sensor"]; + long time = root["time"]; + double latitude = root["data"][0]; + double longitude = root["data"][1]; - char* sensor = root["sensor"]; - long time = root["time"]; - double latitude = root["data"][0]; - double longitude = root["data"][1]; - - Serial.println(sensor); - Serial.println(time); - Serial.println(latitude, 6); - Serial.println(longitude, 6); + Serial.println(sensor); + Serial.println(time); + Serial.println(latitude, 6); + Serial.println(longitude, 6); } -void loop() -{ - +void loop() { + // not used in this example } \ No newline at end of file diff --git a/library.properties b/library.properties new file mode 100644 index 00000000..cb9b8e45 --- /dev/null +++ b/library.properties @@ -0,0 +1,8 @@ +name=ArduinoJson +version=4.0 +author=Benoit Blanchon +maintainer=Benoit Blanchon +sentence=An efficient and elegant JSON library for Arduino +paragraph=Supports JSON parsing and formatting. Uses fixed memory allocation. +url=https://github.com/bblanchon/ArduinoJson +architectures=* \ No newline at end of file diff --git a/src/ArduinoJson.h b/src/ArduinoJson.h new file mode 100644 index 00000000..f869c027 --- /dev/null +++ b/src/ArduinoJson.h @@ -0,0 +1,17 @@ +// Copyright Benoit Blanchon 2014 +// MIT License +// +// Arduino JSON library +// https://github.com/bblanchon/ArduinoJson + +// About this file +// --------------- +// This file is here to please the Arduino IDE. It must be present in the src/ +// for the IDE to find it. Feel free to ignore this file if your working in +// another environment + +#include "../include/ArduinoJson/StaticJsonBuffer.hpp" +#include "../include/ArduinoJson/JsonArray.hpp" +#include "../include/ArduinoJson/JsonObject.hpp" + +using namespace ArduinoJson; \ No newline at end of file