Como converter json para estrutura plana em c #

Eu estou tentando escrever a função em c # que irá converter JSON para um pares de chave / valor. Deve suportar matrizes. Então, por exemplo, o seguinte 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}    
             ]
        }
    ]
}

deve ser convertido para:

title = title_valuecomponents.0.component_id = id1components.0.menu.0.title = menu_title1components.0.menu.1.title = menu_title_xcomponents.0.menu.2.id = menu_id1components.1.component_id = id2components.1.menu.0.title = menu_title2components.1.menu.1.id = menu_id2

É alguma maneira simples de fazer essa tarefa? A lógica se torna complicada quando começo a considerar arrays e matrizes aninhadas.

questionAnswers(2)

yourAnswerToTheQuestion