forked from bblanchon/ArduinoJson
Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
80e0a51c15 | |||
dd416e51f3 | |||
7059e35938 |
@ -1,10 +1,15 @@
|
|||||||
ArduinoJsonParser change log
|
ArduinoJsonParser change log
|
||||||
============================
|
============================
|
||||||
|
|
||||||
|
v1.2
|
||||||
|
----
|
||||||
|
|
||||||
|
* Example: changed `char[] json` into `char json[]`. Damn it C# !
|
||||||
|
|
||||||
v1.1
|
v1.1
|
||||||
----
|
----
|
||||||
|
|
||||||
* Example: changed `char* json` into `char json[]` so that the byes are not write protected
|
* Example: changed `char* json` into `char[] json` so that the bytes are not write protected
|
||||||
* Fixed parsing bug when the JSON contains multi-dimensional arrays
|
* Fixed parsing bug when the JSON contains multi-dimensional arrays
|
||||||
|
|
||||||
v1.0
|
v1.0
|
||||||
|
@ -406,4 +406,11 @@ As you'll see the code size if between 1680 and 3528 bytes, depending on the fea
|
|||||||
<td>TOTAL</td>
|
<td>TOTAL</td>
|
||||||
<td>710</td>
|
<td>710</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
Links
|
||||||
|
-----
|
||||||
|
|
||||||
|
* [The project for which I made me this library](http://blog.benoitblanchon.fr/rfid-payment-terminal/)
|
||||||
|
* [Blog post on the motivation for this library](http://blog.benoitblanchon.fr/arduino-json-parser/)
|
@ -1,94 +1,94 @@
|
|||||||
/*
|
/*
|
||||||
* malloc-free JSON parser for Arduino
|
* malloc-free JSON parser for Arduino
|
||||||
* Benoit Blanchon 2014 - MIT License
|
* Benoit Blanchon 2014 - MIT License
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <JsonParser.h>
|
#include <JsonParser.h>
|
||||||
|
|
||||||
void ParseAnObject()
|
void ParseAnObject()
|
||||||
{
|
{
|
||||||
char[] json = "{\"Name\":\"Blanchon\",\"Skills\":[\"C\",\"C++\",\"C#\"],\"Age\":32,\"Online\":true}";
|
char json[] = "{\"Name\":\"Blanchon\",\"Skills\":[\"C\",\"C++\",\"C#\"],\"Age\":32,\"Online\":true}";
|
||||||
|
|
||||||
JsonParser<32> parser;
|
JsonParser<32> parser;
|
||||||
|
|
||||||
Serial.print("Parse ");
|
Serial.print("Parse ");
|
||||||
Serial.println(json);
|
Serial.println(json);
|
||||||
|
|
||||||
JsonHashTable hashTable = parser.parseHashTable(json);
|
JsonHashTable hashTable = parser.parseHashTable(json);
|
||||||
|
|
||||||
if (!hashTable.success())
|
if (!hashTable.success())
|
||||||
{
|
{
|
||||||
Serial.println("JsonParser.parseHashTable() failed");
|
Serial.println("JsonParser.parseHashTable() failed");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
char* name = hashTable.getString("Name");
|
char* name = hashTable.getString("Name");
|
||||||
Serial.print("name=");
|
Serial.print("name=");
|
||||||
Serial.println(name);
|
Serial.println(name);
|
||||||
|
|
||||||
JsonArray skills = hashTable.getArray("Skills");
|
JsonArray skills = hashTable.getArray("Skills");
|
||||||
Serial.println("skills:");
|
Serial.println("skills:");
|
||||||
for (int i = 0; i < skills.getLength(); i++)
|
for (int i = 0; i < skills.getLength(); i++)
|
||||||
{
|
{
|
||||||
char* value = skills.getString(i);
|
char* value = skills.getString(i);
|
||||||
Serial.print(i);
|
Serial.print(i);
|
||||||
Serial.print(" ");
|
Serial.print(" ");
|
||||||
Serial.println(value);
|
Serial.println(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
int age = hashTable.getLong("Age");
|
int age = hashTable.getLong("Age");
|
||||||
Serial.print("age=");
|
Serial.print("age=");
|
||||||
Serial.println(age);
|
Serial.println(age);
|
||||||
|
|
||||||
bool online = hashTable.getBool("Online");
|
bool online = hashTable.getBool("Online");
|
||||||
Serial.print("online=");
|
Serial.print("online=");
|
||||||
Serial.println(online);
|
Serial.println(online);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ParseAnArray()
|
void ParseAnArray()
|
||||||
{
|
{
|
||||||
char[] json = "[[1.2,3.4],[5.6,7.8]]";
|
char json[] = "[[1.2,3.4],[5.6,7.8]]";
|
||||||
|
|
||||||
JsonParser<32> parser;
|
JsonParser<32> parser;
|
||||||
|
|
||||||
Serial.print("Parse ");
|
Serial.print("Parse ");
|
||||||
Serial.println(json);
|
Serial.println(json);
|
||||||
|
|
||||||
JsonArray array = parser.parseArray(json);
|
JsonArray array = parser.parseArray(json);
|
||||||
|
|
||||||
if (!array.success())
|
if (!array.success())
|
||||||
{
|
{
|
||||||
Serial.println("JsonParser.parseArray() failed");
|
Serial.println("JsonParser.parseArray() failed");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < array.getLength(); i++)
|
for (int i = 0; i < array.getLength(); i++)
|
||||||
{
|
{
|
||||||
Serial.println(i);
|
Serial.println(i);
|
||||||
|
|
||||||
JsonArray innerArray = array.getArray(i);
|
JsonArray innerArray = array.getArray(i);
|
||||||
|
|
||||||
for (int j = 0; j < innerArray.getLength(); j++)
|
for (int j = 0; j < innerArray.getLength(); j++)
|
||||||
{
|
{
|
||||||
double value = innerArray.getDouble(j);
|
double value = innerArray.getDouble(j);
|
||||||
|
|
||||||
Serial.print(" ");
|
Serial.print(" ");
|
||||||
Serial.print(j);
|
Serial.print(j);
|
||||||
Serial.print("=");
|
Serial.print("=");
|
||||||
Serial.println(value);
|
Serial.println(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
Serial.begin(9600);
|
Serial.begin(9600);
|
||||||
|
|
||||||
ParseAnObject();
|
ParseAnObject();
|
||||||
ParseAnArray();
|
ParseAnArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop()
|
void loop()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user