void VarTest::testJSONDeserializeComplex() { Poco::Int8 i8(-12); Poco::UInt16 u16(2345); Poco::Int32 i32(-24343); Poco::UInt64 u64(1234567890); u64 *= u64; bool b = false; float f = 3.1415f; double d = 3.1415; std::string s("test string"); char c('x'); DynamicStruct aStr; aStr["i8"] = i8; aStr["u16"] = u16; aStr["i32"] = i32; aStr["u64"] = u64; aStr["b"] = b; aStr["f"] = f; aStr["d"] = d; aStr["s"] = s; aStr["c"] = c; std::vector<Var> aVec; aVec.push_back(i8); aVec.push_back(u16); aVec.push_back(i32); aVec.push_back(u64); aVec.push_back(b); aVec.push_back(f); aVec.push_back(d); aVec.push_back(s); aVec.push_back(c); aVec.push_back(aStr); aStr["vec"] = aVec; std::string sStr = Var::toString(aStr); Var a = Var::parse(sStr); assert (a.isStruct()); assert (aStr["i8"] == i8); assert (aStr["u16"] == u16); assert (aStr["i32"] == i32); assert (aStr["u64"] == u64); assert (aStr["b"] == b); assert (aStr["f"] == f); assert (aStr["d"] == d); assert (aStr["s"] == s); assert (aStr["c"] == c); Var vecRet = a["vec"]; assert (vecRet.isArray()); assert (vecRet[0] == i8); assert (vecRet[1] == u16); assert (vecRet[2] == i32); assert (vecRet[3] == u64); assert (vecRet[4] == b); assert (vecRet[5] == f); assert (vecRet[6] == d); assert (vecRet[7] == s); assert (vecRet[8] == c); Var strRet = vecRet[9]; assert (strRet.isStruct()); }