33 #include <unordered_map> 
   47     JsonValue(
const std::string &_value, JsonType _type) :
 
   57       , valueBegin(SIZE_MAX)
 
   59       , type(microjson::JsonInvalidType){}
 
   65     microjson::JsonType type;
 
   67     size_t nameSize()
 const {
 
   68         return nameEnd - nameBegin;
 
   71     size_t valueSize()
 const {
 
   72         return valueEnd - valueBegin + 1;
 
   75     bool checkValue()
 const {
 
   76         return type != microjson::JsonInvalidType && valueBegin != SIZE_MAX && valueEnd != SIZE_MAX;
 
   79     bool checkEof()
 const {
 
   80         return (type == microjson::JsonNumberType || type == microjson::JsonBoolType) &&
 
   81                 valueBegin != SIZE_MAX && valueEnd == SIZE_MAX;
 
   85         return checkValue() && nameBegin != SIZE_MAX && nameEnd != SIZE_MAX &&
 
   86                 nameBegin < nameEnd && nameEnd < valueBegin;
 
   90 using JsonObject = std::unordered_map<std::string, JsonValue>;
 
   91 using JsonArray = std::vector<JsonValue>;
 
   93 extern JsonArray parseJsonArray(
const char *buffer, 
size_t size);
 
   94 extern JsonObject parseJsonObject(
const char *buffer, 
size_t size);
 
   96 inline bool skipWhiteSpace(
const char byte) {
 
   97     return byte == 
'\n' || 
byte == 
' ' || 
byte == 
'\r' || 
byte == 
'\t' || 
byte == 
'\f' || 
byte == 
'\v';
 
  100 extern bool extractValue(
const char *buffer, 
size_t size, 
size_t &i, 
const char expectedEndByte, 
microjson::JsonProperty &property);
 
  101 extern bool extractProperty(
const char *buffer, 
size_t size, 
size_t &i, 
const char expectedEndByte, 
microjson::JsonProperty &property);
 
Definition: microjson.h:54
Definition: microjson.h:45