// Testing the parseJSON function for parsing a string. int runTest01() { JValue sVal = parseJSON("\"hello\""); JValue sqVal = parseJSON("\"word up\""); JValue midVal = parseJSON("\"with mid \\\" quotes!!!\""); if (sVal.isString() && sVal.jString().compare("hello") == 0 && sqVal.isString() && sqVal.jString().compare("word up") == 0 && midVal.isString() && midVal.jString().compare("with mid \" quotes!!!") == 0) return 0; return 1; }
bool JValue::append(const JValue& value) { #if PBNJSON_ZERO_COPY_STL_STR if (!value.m_input.empty() || (value.isString() && value.asString().empty())) { m_children.push_back(value.m_input); } m_children.insert(m_children.end(), value.m_children.begin(), value.m_children.end()); #endif return jarray_set(m_jval, jarray_size(m_jval), value.peekRaw()); }
std::string JGenerator::serialize(const JValue &val, bool quoteSingleString) { const char *str = jvalue_tostring_simple(val.peekRaw()); if (UNLIKELY(str == NULL)) { return ""; } if (!quoteSingleString && val.isString()) { size_t length = strlen(str); if ( (length >= 2) && (str[0] == '"') && (str[length-1] == '"') ) { return std::string(str+1, length-2); } } return str; }