Serialize integer values in object

This commit is contained in:
Benoit Blanchon
2014-09-30 17:24:14 +02:00
parent 27a4d57f7c
commit c1ab55f9d9
3 changed files with 15 additions and 5 deletions

View File

@ -28,7 +28,7 @@ struct JsonNode
{ {
bool asBoolean; bool asBoolean;
double asDouble; double asDouble;
int asInteger; long asInteger;
const char* asString; const char* asString;
struct struct

View File

@ -108,11 +108,21 @@ size_t JsonObject::printTo(Print& p) const
for (JsonNode* child = firstChild; child; child = child->next) for (JsonNode* child = firstChild; child; child = child->next)
{ {
const char* childKey = child->content.asKey.key; const char* childKey = child->content.asKey.key;
const char* childValue = child->content.asKey.value->content.asString; JsonNode* childValue = child->content.asKey.value;
n += EscapedString::printTo(childKey, p); n += EscapedString::printTo(childKey, p);
n += p.write(':'); n += p.write(':');
n += EscapedString::printTo(childValue, p);
switch (childValue->type)
{
case JSON_STRING:
n += EscapedString::printTo(childValue->content.asString, p);
break;
case JSON_INTEGER:
n += p.print(childValue->content.asInteger);
break;
}
if (child->next) if (child->next)
{ {

View File

@ -89,13 +89,13 @@ TEST_F(JsonObjectSerializationTests, OneStringOverCapacity)
outputMustBe("{\"key1\":\"value1\",\"key2\":\"value2\"}"); outputMustBe("{\"key1\":\"value1\",\"key2\":\"value2\"}");
} }
/*
TEST_F(JsonObjectSerializationTests, OneInteger) TEST_F(JsonObjectSerializationTests, OneInteger)
{ {
object["key"] = 1; object["key"] = 1;
outputMustBe("{\"key\":1}"); outputMustBe("{\"key\":1}");
} }
/*
TEST_F(JsonObjectSerializationTests, OneDoubleFourDigits) TEST_F(JsonObjectSerializationTests, OneDoubleFourDigits)
{ {
object["key"].set<4>(3.14159265358979323846); object["key"].set<4>(3.14159265358979323846);