本文整理汇总了C++中JsonValue::toNumber方法的典型用法代码示例。如果您正苦于以下问题:C++ JsonValue::toNumber方法的具体用法?C++ JsonValue::toNumber怎么用?C++ JsonValue::toNumber使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JsonValue
的用法示例。
在下文中一共展示了JsonValue::toNumber方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnData
void OnData(
const happyhttp::Response* r,
void* userdata,
const unsigned char* data,
int n
)
{
std::cout << "reading...\n";
char *endptr;
JsonValue value;
JsonAllocator allocator;
JsonParseStatus status = jsonParse((char*)data, &endptr, &value, allocator);
if (status != JSON_PARSE_OK) {
fprintf(stderr, "error at %zd, status: %d\n", endptr - (char*)data, status);
exit(EXIT_FAILURE);
} else { // SUCCESS
switch (value.getTag()) {
case JSON_TAG_NUMBER:
printf("%g\n", value.toNumber());
break;
case JSON_TAG_BOOL:
printf("%s\n", value.toBool() ? "true" : "false");
break;
case JSON_TAG_STRING:
printf("\"%s\"\n", value.toString());
break;
case JSON_TAG_ARRAY:
for (auto i : value) {
auto bleh = i->value;
}
break;
case JSON_TAG_OBJECT:
for (auto i : value) {
printf("%s = ", i->key);
}
break;
case JSON_TAG_NULL:
printf("null\n");
break;
}
}
}
示例2: traverse_gason
double traverse_gason(JsonValue o)
{
double x = 0;
switch (o.getTag())
{
case JSON_TAG_NUMBER:
x += o.toNumber();
break;
case JSON_TAG_ARRAY:
case JSON_TAG_OBJECT:
for (auto i : o)
{
x += traverse_gason(i->value);
}
break;
default:
return 0;
}
return x;
}
示例3: printReturn
void NewsScene::printReturn(JsonValue o)
{
switch (o.getTag())
{
case JSON_TAG_NUMBER:
printf("%g\n", o.toNumber());
//sum += o.toNumber();
break;
case JSON_TAG_BOOL:
printf("%s\n", o.toBool() ? "true" : "false");
break;
case JSON_TAG_STRING:
{
string theValue =o.toString();
setValue(theValue);
}
break;
case JSON_TAG_ARRAY:
for (auto i : o)
{
// tmpNews = new News();
listNews.push_back(new News());
printReturn(i->value);
}
break;
case JSON_TAG_OBJECT:
for (auto i : o)
{
printf("%s = ", i->key);
lastKey = i->key;
printReturn(i->value);
}
break;
case JSON_TAG_NULL:
printf("null\n");
break;
}
}
示例4: dumpValue
static void dumpValue(std::ostringstream& os, const JsonValue& o, int shiftWidth, const std::string& linefeed = "", int indent = 0) {
switch (o.getTag()) {
case JSON_NUMBER:
char buffer[32];
sprintf(buffer, "%f", o.toNumber());
os << buffer;
break;
case JSON_TRUE:
os << "true";
break;
case JSON_FALSE:
os << "false";
break;
case JSON_STRING:
dumpString(os, o.toString());
break;
case JSON_ARRAY:
// It is not necessary to use o.toNode() to check if an array or object
// is empty before iterating over its members, we do it here to allow
// nicer pretty printing.
if (!o.toNode()) {
os << "[]";
break;
}
os << "[" << linefeed;
for (auto i : o) {
if (shiftWidth > 0)
os << std::setw(indent + shiftWidth) << " " << std::setw(0);
dumpValue(os, i->value, shiftWidth, linefeed, indent + shiftWidth);
if (i->next)
os << ",";
os << linefeed;
}
if (indent > 0)
os << std::setw(indent) << " " << std::setw(0);
os.put(']');
break;
case JSON_OBJECT:
if (!o.toNode()) {
os << "{}";
break;
}
os << "{" << linefeed;
for (auto i : o) {
if (shiftWidth > 0)
os << std::setw(indent + shiftWidth) << " " << std::setw(0);
dumpString(os, i->key);
os << ":";
dumpValue(os, i->value, shiftWidth, linefeed, indent + shiftWidth);
if (i->next)
os << ",";
os << linefeed;
}
if (indent > 0)
os << std::setw(indent) << " " << std::setw(0);
os.put('}');
break;
case JSON_NULL:
os << "null";
break;
}
}