- JSON for Modern C++ (original) (raw)
std::hashnlohmann::basic\_json¶
namespace std { struct hash<nlohmann::basic_json>; }
Return a hash value for a JSON object. The hash function tries to rely on std::hash where possible. Furthermore, the type of the JSON value is taken into account to have different hash values for null, 0, 0U, and false, etc.
Examples¶
Example
The example shows how to calculate hash values for different JSON values.
`#include #include #include <nlohmann/json.hpp>
using json = nlohmann::json; using namespace nlohmann::literals;
int main() { std::cout << "hash(null) = " << std::hash {}(json(nullptr)) << '\n' << "hash(false) = " << std::hash {}(json(false)) << '\n' << "hash(0) = " << std::hash {}(json(0)) << '\n' << "hash(0U) = " << std::hash {}(json(0U)) << '\n' << "hash("") = " << std::hash {}(json("")) << '\n' << "hash({}) = " << std::hash {}(json::object()) << '\n' << "hash([]) = " << std::hash {}(json::array()) << '\n' << "hash({"hello": "world"}) = " << std::hash {}("{"hello": "world"}"_json) << std::endl; } `
Output:
hash(null) = 2654435769 hash(false) = 2654436030 hash(0) = 2654436095 hash(0U) = 2654436156 hash("") = 6142509191626859748 hash({}) = 2654435832 hash([]) = 2654435899 hash({"hello": "world"}) = 4469488738203676328
Note the output is platform-dependent.
Version history¶
- Added in version 1.0.0.
- Extended for arbitrary basic_json types in version 3.10.5.