iterate over pair of const string and Json

Use `auto` or `std::pair<const string, Json>` (same as `value_type`) to iterate over map collection.
Because there's a type mismatch (no `const` modifier) each iteration creates a temporary pair.