diff --git a/src/common/type/json.c b/src/common/type/json.c index 5d8b78745..07031840a 100644 --- a/src/common/type/json.c +++ b/src/common/type/json.c @@ -970,12 +970,24 @@ jsonFromVar(const Variant *var, unsigned int indent) { strCat(jsonStr, "null"); } + else if (varType(varSub) == varTypeBool) + { + strCat(jsonStr, strPtr(jsonFromBool(varBool(varSub)))); + } else if (varType(varSub) == varTypeKeyValue) { // Update the depth before processing the contents of the list element strCat(indentDepth, strPtr(indentSpace)); strCat(jsonStr, strPtr(jsonFromKvInternal(varKv(varSub), indentSpace, indentDepth))); } + else if (varType(varSub) == varTypeVariantList) + { + strCat(jsonStr, strPtr(jsonFromVar(varSub, indent))); + } + else if (varType(varSub) == varTypeInt64) + { + strCat(jsonStr, strPtr(jsonFromInt64(varInt64(varSub)))); + } else if (varType(varSub) == varTypeUInt) { strCat(jsonStr, strPtr(jsonFromUInt(varUInt(varSub)))); diff --git a/test/src/module/common/typeJsonTest.c b/test/src/module/common/typeJsonTest.c index 9fab3d298..e02c1db1d 100644 --- a/test/src/module/common/typeJsonTest.c +++ b/test/src/module/common/typeJsonTest.c @@ -288,12 +288,16 @@ testRun(void) TEST_ASSIGN(varListOuter, varNewVarLst(varLstNew()), "new variant list with keyValues"); varLstAdd(varVarLst(varListOuter), varNewStrZ("ASTRING")); + varLstAdd(varVarLst(varListOuter), varNewInt64(9223372036854775807LL)); + varLstAdd(varVarLst(varListOuter), varNewBool(true)); + varLstAdd(varVarLst(varListOuter), varNewVarLst(varLstNew())); varLstAdd(varVarLst(varListOuter), NULL); varLstAdd(varVarLst(varListOuter), keyValue); TEST_ASSIGN(json, jsonFromVar(varListOuter, 0), "VariantList - no indent"); TEST_RESULT_STR(strPtr(json), - "[\"ASTRING\",null,{\"backup-info-size-delta\":1982702,\"backup-prior\":\"20161219-212741F_20161219-212803I\"," + "[\"ASTRING\",9223372036854775807,true,[],null,{\"backup-info-size-delta\":1982702," + "\"backup-prior\":\"20161219-212741F_20161219-212803I\"," "\"backup-reference\":[\"20161219-212741F\",\"20161219-212741F_20161219-212803I\",null]," "\"backup-timestamp-start\":1482182951,\"checksum-page-error\":[1]," "\"section\":{\"escape\":\"\\\"\\\\/\\b\\n\\r\\t\\f\",\"key1\":\"value1\",\"key2\":null,\"key3\":\"value2\"}}]", @@ -304,7 +308,8 @@ testRun(void) TEST_ASSIGN(json, jsonFromVar(varListOuter, 0), "VariantList - no indent - multiple elements"); TEST_RESULT_STR(strPtr(json), - "[\"ASTRING\",null,{\"backup-info-size-delta\":1982702,\"backup-prior\":\"20161219-212741F_20161219-212803I\"," + "[\"ASTRING\",9223372036854775807,true,[],null,{\"backup-info-size-delta\":1982702," + "\"backup-prior\":\"20161219-212741F_20161219-212803I\"," "\"backup-reference\":[\"20161219-212741F\",\"20161219-212741F_20161219-212803I\",null]," "\"backup-timestamp-start\":1482182951,\"checksum-page-error\":[1]," "\"section\":{\"escape\":\"\\\"\\\\/\\b\\n\\r\\t\\f\",\"key1\":\"value1\",\"key2\":null,\"key3\":\"value2\"}}," @@ -318,6 +323,9 @@ testRun(void) TEST_RESULT_STR(strPtr(json), "[\n" " \"ASTRING\",\n" + " 9223372036854775807,\n" + " true,\n" + " []\n,\n" " null,\n" " {\n" " \"backup-info-size-delta\" : 1982702,\n"