MCPcopy Create free account
hub / github.com/ComodoSecurity/openedr / convertJsonValueToVariant

Function convertJsonValueToVariant

edrav2/iprj/libcore/src/jsonrpc.cpp:60–97  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

58//
59//
60Variant convertJsonValueToVariant(const Json::Value& value)
61{
62 switch (value.type())
63 {
64 case Json::ValueType::nullValue:
65 return {};
66 case Json::ValueType::intValue:
67 return Variant(value.asLargestInt());
68 case Json::ValueType::uintValue:
69 return Variant(value.asLargestUInt());
70 case Json::ValueType::realValue:
71 error::TypeError(SL, "Variant doesn't support double type").throwException();
72 case Json::ValueType::stringValue:
73 return Variant(value.asString());
74 case Json::ValueType::booleanValue:
75 return Variant(value.asBool());
76 case Json::ValueType::arrayValue:
77 {
78 Sequence seq = Sequence();
79 Json::ArrayIndex nSize = value.size();
80 for (Json::ArrayIndex i = 0; i < nSize; ++i)
81 seq.insert(i, convertJsonValueToVariant(value[i]));
82 return seq;
83 }
84 case Json::ValueType::objectValue:
85 {
86 Variant dict = Dictionary();
87 Json::Value::Members members(value.getMemberNames());
88 for (auto iter = members.begin(); iter != members.end(); ++iter)
89 {
90 const std::string& sKey = *iter;
91 dict.put(sKey, convertJsonValueToVariant(value[sKey]));
92 }
93 return deserializeObject(dict);
94 }
95 }
96 error::TypeError(SL, "Unsupported JSON value type").throwException();
97}
98
99//
100//

Callers 3

executeMethod · 0.85
jsonrpcclient.cppFile · 0.85
HandleMethodCallMethod · 0.85

Calls 15

deserializeObjectFunction · 0.85
asLargestIntMethod · 0.80
asLargestUIntMethod · 0.80
throwExceptionMethod · 0.80
asStringMethod · 0.80
asBoolMethod · 0.80
getMemberNamesMethod · 0.80
VariantClass · 0.50
SequenceClass · 0.50
DictionaryClass · 0.50
typeMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected