Cómo convertir json a estructura plana en C #

Estoy tratando de escribir la función en C # que convertirá JSON en un par clave / valor. Debe soportar matrices. Así, por ejemplo, el siguiente JSON:

{ 
    title: title_value,
    components: [
        {
            component_id: id1,
            menu: [
                   {title: menu_title1},
                   {title: menu_title_x},
                   {id: menu_id1}    
            ]
        },
        {
             component_id: id2,
             menu: [
                   {title: menu_title2},
                   {id: menu_id2}    
             ]
        }
    ]
}

debe ser convertido a:

title = title_valuecomponents.0.component_id = id1components.0.menu.0.title = menu_title1components.0.menu.1.title = menu_title_xcomponentes.0.menu.2.id = menu_id1components.1.component_id = id2components.1.menu.0.title = menu_title2componentes.1.menu.1.id = menu_id2

¿Es alguna forma sencilla de hacer esta tarea? La lógica se complica cuando comienzo a tener en cuenta matrices y matrices anidadas.

Respuestas a la pregunta(2)

Su respuesta a la pregunta