<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
    <Type Name="nlohmann::basic_json&lt;*&gt;">
        <DisplayString Condition="m_type == nlohmann::detail::value_t::null">null</DisplayString>
        <DisplayString Condition="m_type == nlohmann::detail::value_t::object">{*(m_value.object)}</DisplayString>
        <DisplayString Condition="m_type == nlohmann::detail::value_t::array">{*(m_value.array)}</DisplayString>
        <DisplayString Condition="m_type == nlohmann::detail::value_t::string">{*(m_value.string)}</DisplayString>
        <DisplayString Condition="m_type == nlohmann::detail::value_t::boolean">{m_value.boolean}</DisplayString>
        <DisplayString Condition="m_type == nlohmann::detail::value_t::number_integer">{m_value.number_integer}</DisplayString>
        <DisplayString Condition="m_type == nlohmann::detail::value_t::number_unsigned">{m_value.number_unsigned}</DisplayString>
        <DisplayString Condition="m_type == nlohmann::detail::value_t::number_float">{m_value.number_float}</DisplayString>
        <DisplayString Condition="m_type == nlohmann::detail::value_t::discarded">discarded</DisplayString>
        <Expand>
            <ExpandedItem Condition="m_type == nlohmann::detail::value_t::object">
                *(m_value.object),view(simple)
            </ExpandedItem>
            <ExpandedItem Condition="m_type == nlohmann::detail::value_t::array">
                *(m_value.array),view(simple)
            </ExpandedItem>
        </Expand>
    </Type>
    
    <!--    skip the pair first/second members in the treeview while traversing a map. 
            Only works in VS 2015 Update 2 and beyond using the new visualization -->
    <Type Name="std::pair&lt;*, nlohmann::basic_json&lt;*&gt;&gt;" IncludeView="MapHelper">
        <DisplayString>{second}</DisplayString>
        <Expand>
            <ExpandedItem>second</ExpandedItem>
        </Expand>
    </Type>
    
</AutoVisualizer>
