|
|
@@ -9,7 +9,8 @@
|
|
|
#include "JsonHashTable.h"
|
|
|
#include "JsonArray.h"
|
|
|
|
|
|
-class JsonParserBase
|
|
|
+template <int N>
|
|
|
+class JsonParser
|
|
|
{
|
|
|
public:
|
|
|
|
|
|
@@ -22,31 +23,20 @@ public:
|
|
|
{
|
|
|
return JsonHashTable(json, parse(json));
|
|
|
}
|
|
|
-
|
|
|
-protected:
|
|
|
|
|
|
- JsonParserBase(jsmntok_t* tokens, int maxTokenCount);
|
|
|
-
|
|
|
private:
|
|
|
|
|
|
- jsmntok_t* parse(char* json);
|
|
|
+ jsmntok_t* parse(char* jsonString)
|
|
|
+ {
|
|
|
+ jsmn_parser parser;
|
|
|
+ jsmn_init(&parser);
|
|
|
|
|
|
- int maxTokenCount;
|
|
|
- jsmntok_t* tokens;
|
|
|
-};
|
|
|
+ if (JSMN_SUCCESS != jsmn_parse(&parser, jsonString, tokens, N))
|
|
|
+ return 0;
|
|
|
|
|
|
-template <int N>
|
|
|
-class JsonParser : public JsonParserBase
|
|
|
-{
|
|
|
-public:
|
|
|
-
|
|
|
- JsonParser()
|
|
|
- : JsonParserBase(tokens, N)
|
|
|
- {
|
|
|
+ return tokens;
|
|
|
}
|
|
|
|
|
|
-private:
|
|
|
-
|
|
|
jsmntok_t tokens[N];
|
|
|
};
|
|
|
|