// read value at file pos bool CJson:: readValue(CStrParse &parse, ValueP &value) { if (parse.eof()) return false; char c = parse.getCharAt(); if (c == '\"') { std::string str1; if (! readString(parse, str1)) return false; value = ValueP(createString(str1)); } else if (c == '-' || isdigit(c)) { std::string str1; if (! readNumber(parse, str1)) return false; bool ok; double n = CJson::stod(str1, ok); value = ValueP(createNumber(n)); } else if (c == '{') { Object *obj; if (! readObject(parse, obj)) return false; value = ValueP(obj); } else if (c == '[') { Array *array; if (! readArray(parse, array)) return false; value = ValueP(array); } else if (parse.isString("true")) { parse.skipChars("true"); value = ValueP(createTrue()); } else if (parse.isString("false")) { parse.skipChars("false"); value = ValueP(createFalse()); } else if (parse.isString("null")) { parse.skipChars("null"); value = ValueP(createNull()); } else return false; return true; }
void aJsonClass::addTrueToObject(aJsonObject* object, const char* name) { addItemToObject(object, name, createTrue()); }
void aJsonClass::addBooleanToObject(aJsonObject* object, const char* name, bool b) { addItemToObject(object, name, (b ? createTrue() : createFalse())); }