Exemplo n.º 1
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++;
	}
}
Exemplo n.º 2
0
 static void convert(const pbnjson::JValue &j, bool &v)
 {
     LG_ASSERT(j.isBoolean());
     v = j.asBool();
 }