forked from bblanchon/ArduinoJson
Example: change the type of the json string from char* to char[] because it cause issue in memory protected environments.
This commit is contained in:
@ -1,94 +1,94 @@
|
||||
/*
|
||||
* malloc-free JSON parser for Arduino
|
||||
* Benoit Blanchon 2014 - MIT License
|
||||
*/
|
||||
|
||||
#include <JsonParser.h>
|
||||
|
||||
void ParseAnObject()
|
||||
{
|
||||
char* json = "{\"Name\":\"Blanchon\",\"Skills\":[\"C\",\"C++\",\"C#\"],\"Age\":32,\"Online\":true}";
|
||||
|
||||
JsonParser<32> parser;
|
||||
|
||||
Serial.print("Parse ");
|
||||
Serial.println(json);
|
||||
|
||||
JsonHashTable hashTable = parser.parseHashTable(json);
|
||||
|
||||
if (!hashTable.success())
|
||||
{
|
||||
Serial.println("JsonParser.parseHashTable() failed");
|
||||
return;
|
||||
}
|
||||
|
||||
char* name = hashTable.getString("Name");
|
||||
Serial.print("name=");
|
||||
Serial.println(name);
|
||||
|
||||
JsonArray skills = hashTable.getArray("Skills");
|
||||
Serial.println("skills:");
|
||||
for (int i = 0; i < skills.getLength(); i++)
|
||||
{
|
||||
char* value = skills.getString(i);
|
||||
Serial.print(i);
|
||||
Serial.print(" ");
|
||||
Serial.println(value);
|
||||
}
|
||||
|
||||
int age = hashTable.getLong("Age");
|
||||
Serial.print("age=");
|
||||
Serial.println(age);
|
||||
|
||||
bool online = hashTable.getBool("Online");
|
||||
Serial.print("online=");
|
||||
Serial.println(online);
|
||||
}
|
||||
|
||||
void ParseAnArray()
|
||||
{
|
||||
char* json = "[[1.2,3.4],[5.6,7.8]]";
|
||||
|
||||
JsonParser<32> parser;
|
||||
|
||||
Serial.print("Parse ");
|
||||
Serial.println(json);
|
||||
|
||||
JsonArray array = parser.parseArray(json);
|
||||
|
||||
if (!array.success())
|
||||
{
|
||||
Serial.println("JsonParser.parseArray() failed");
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < array.getLength(); i++)
|
||||
{
|
||||
Serial.println(i);
|
||||
|
||||
JsonArray innerArray = array.getArray(i);
|
||||
|
||||
for (int j = 0; j < innerArray.getLength(); j++)
|
||||
{
|
||||
double value = innerArray.getDouble(j);
|
||||
|
||||
Serial.print(" ");
|
||||
Serial.print(j);
|
||||
Serial.print("=");
|
||||
Serial.println(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(9600);
|
||||
|
||||
ParseAnObject();
|
||||
ParseAnArray();
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
|
||||
}
|
||||
/*
|
||||
* malloc-free JSON parser for Arduino
|
||||
* Benoit Blanchon 2014 - MIT License
|
||||
*/
|
||||
|
||||
#include <JsonParser.h>
|
||||
|
||||
void ParseAnObject()
|
||||
{
|
||||
char[] json = "{\"Name\":\"Blanchon\",\"Skills\":[\"C\",\"C++\",\"C#\"],\"Age\":32,\"Online\":true}";
|
||||
|
||||
JsonParser<32> parser;
|
||||
|
||||
Serial.print("Parse ");
|
||||
Serial.println(json);
|
||||
|
||||
JsonHashTable hashTable = parser.parseHashTable(json);
|
||||
|
||||
if (!hashTable.success())
|
||||
{
|
||||
Serial.println("JsonParser.parseHashTable() failed");
|
||||
return;
|
||||
}
|
||||
|
||||
char* name = hashTable.getString("Name");
|
||||
Serial.print("name=");
|
||||
Serial.println(name);
|
||||
|
||||
JsonArray skills = hashTable.getArray("Skills");
|
||||
Serial.println("skills:");
|
||||
for (int i = 0; i < skills.getLength(); i++)
|
||||
{
|
||||
char* value = skills.getString(i);
|
||||
Serial.print(i);
|
||||
Serial.print(" ");
|
||||
Serial.println(value);
|
||||
}
|
||||
|
||||
int age = hashTable.getLong("Age");
|
||||
Serial.print("age=");
|
||||
Serial.println(age);
|
||||
|
||||
bool online = hashTable.getBool("Online");
|
||||
Serial.print("online=");
|
||||
Serial.println(online);
|
||||
}
|
||||
|
||||
void ParseAnArray()
|
||||
{
|
||||
char[] json = "[[1.2,3.4],[5.6,7.8]]";
|
||||
|
||||
JsonParser<32> parser;
|
||||
|
||||
Serial.print("Parse ");
|
||||
Serial.println(json);
|
||||
|
||||
JsonArray array = parser.parseArray(json);
|
||||
|
||||
if (!array.success())
|
||||
{
|
||||
Serial.println("JsonParser.parseArray() failed");
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < array.getLength(); i++)
|
||||
{
|
||||
Serial.println(i);
|
||||
|
||||
JsonArray innerArray = array.getArray(i);
|
||||
|
||||
for (int j = 0; j < innerArray.getLength(); j++)
|
||||
{
|
||||
double value = innerArray.getDouble(j);
|
||||
|
||||
Serial.print(" ");
|
||||
Serial.print(j);
|
||||
Serial.print("=");
|
||||
Serial.println(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(9600);
|
||||
|
||||
ParseAnObject();
|
||||
ParseAnArray();
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user