Same as issue #49 when using std::array in a jsonrpc message as a child of params it gets interpreted as a json object instead of array. Arrays works as a return type, and nested inside another child object of param object but when part of params it causes a type error.
{
"id": 0,
"jsonrpc": "2.0",
"method": "set-camera-location",
"params": {
"index": 0,
"location": [
10.0,
20.0,
30.0
]
}
}
Given this function:
bool method(const int index, const std::array<double, 3>& location);
This causes:
unknown file: Failure
C++ exception with description "-32602: invalid parameter: must be object, but is array for parameter "location"" thrown in the test body.
Fix is to add the following to typemapper.hpp
#include <array>
template <typename T, std::size_t N>
constexpr json::value_t GetType(type<std::array<T, N>>) {
return json::value_t::array;
}
I know that @cinemast mentioned that they wont add more built in custom mappings, but I thought it would be useful to point out the issue if someone else also got stuck wondering why their methods are not working.
Same as issue #49 when using std::array in a jsonrpc message as a child of params it gets interpreted as a json object instead of array. Arrays works as a return type, and nested inside another child object of param object but when part of params it causes a type error.
{ "id": 0, "jsonrpc": "2.0", "method": "set-camera-location", "params": { "index": 0, "location": [ 10.0, 20.0, 30.0 ] } }Given this function:
This causes:
Fix is to add the following to typemapper.hpp
I know that @cinemast mentioned that they wont add more built in custom mappings, but I thought it would be useful to point out the issue if someone else also got stuck wondering why their methods are not working.