# std::hash ``` namespace std { struct hash; } ``` 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 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.