Пример #1
0
ssize_t objectSize(const pbnjson::JValue& value)
{
	ssize_t result = 0;
	for (pbnjson::JValue::ObjectConstIterator i = value.begin(); i != value.end(); i++)
		result++;
	return result;
}
Пример #2
0
static void statistics(pbnjson::JValue json, JSONStats &stats)
{
	if (json.isObject()) {
		stats.numObjects++;
		pbnjson::JValue::ObjectIterator i;
		for (i = json.begin(); i != json.end(); i++) {
			stats.numKeys ++;
			stats.keySize += (*i).first.asString().length();
			pbnjson::JValue child = (*i).second;
			statistics(child, stats);
		}
	} else if (json.isArray()) {
		stats.numArrays++;
		stats.numElements += json.arraySize();
		for (ssize_t i = 0; i < json.arraySize(); i++) {
			statistics(json, stats);
		}
	} else if (json.isString()) {
		stats.numStrings++;
		stats.stringSize += json.asString().length();
	} else if (json.isNumber()) {
		stats.numNumbers++;
	} else if (json.isBoolean()) {
		stats.numBooleans++;
	} else if (json.isNull()) {
		stats.numNulls++;
	}
}