std::string jsonStringResult(std::string s, const char *id) {
	char *escaped = cJSON_escapestring(s.c_str());
	// Note - escaped now has quotes around it
	std::string r = jsonResult(escaped,id);
	cJSON_free(escaped);
	return r;
}
Esempio n. 2
0
void ViAcoustidIdentifier::processReply(bool success)
{
	if(success)
	{
		QVariantMap result = jsonResult().toVariantMap();
		if(result["status"].toString() == "ok")
		{
			QList<ViMetadata> metadatas;
			QList<QVariant> results = result["results"].toList();
			for(int i = 0; i < results.size(); ++i)
			{
				QList<QVariant> recordings = results[i].toMap()["recordings"].toList();
				for(int j = 0; j < recordings.size(); ++j)
				{
					ViMetadata metadata;
					QVariantMap infoMap = recordings[j].toMap();
					metadata.setTitle(infoMap["title"].toString());
					QList<QVariant> artistsMap = infoMap["artists"].toList();
					if(!artistsMap.isEmpty())
					{
						metadata.setArtist(artistsMap[0].toMap()["name"].toString());
					}
					metadatas.append(metadata);
				}
			}
			finish(metadatas);
			return;
		}
	}
	finish();
}
std::string jsonIntResult(int r, const char *id) {
	return jsonResult(NosuchSnprintf("%d",r),id);
}
std::string jsonDoubleResult(double r, const char *id) {
	return jsonResult(NosuchSnprintf("%f",r),id);
}