示例#1
0
文件: 01.cpp 项目: crockeo/jsonr
// 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;
}
示例#2
0
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());
}
示例#3
0
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;
}