Gere JSON leve usando DataContractJsonSerializer

Estou tentando gerar JSON usando c # e DataContractJsonSerializer no .net 3.5. O problema é que não consigo descobrir como construir a estrutura correta para o resultado que preciso.

Tentei reproduzir matrizes associativas do PHP usando tabelas de hash, objetos de lista e listas de matrizes, mas não consigo descobrir como gerar meu resultado da melhor maneira usando o DataContractJsonSerializer sem precisar criar meu próprio loop recursivo para criar o JSON.

A abordagem mais próxima é usar a abordagem a Dictionary <string, Dictionary <string, string >>, mas o resultado é muito grande, pois não posso "nomear" as chaves.

Isto é o que eu recebo:

[
   {
      "Key":"status",
      "Value":[
         {
            "Key":"value",
            "Value":"ok"
         }
      ]
   },
   {
      "Key":"1",
      "Value":[
         {
            "Key":"name",
            "Value":"Result1"
         },
         {
            "Key":"details",
            "Value":"Result 1 details"
         }
      ]
   },
   {
      "Key":"2",
      "Value":[
         {
            "Key":"name",
            "Value":"Result2"
         },
         {
            "Key":"details",
            "Value":"Result 2 details"
         }
      ]
   },
   {
      "Key":"caller",
      "Value":[
         {
            "Key":"value",
            "Value":"1135345"
         }
      ]
   }
]

É isso que eu quero:

{
   "status":"ok",
   "response":[
      {
         "id":1,
         "name":"Result1"
         "details":"Result 1 details"
      },
      {
         "id":2,
         "name":"Result2"
         "details":"Result 2 details"
      },
      {
         "id":3,
         "name":"Result3"
         "details":"Result 3 details"
    ],
   "caller":"1135345"
}

Alguém tem uma idéia de como eu posso gerar esse pedaço de JSON usando C # sem precisar carregar toda a estrutura Json.NET? Eu preciso que isso seja gerado o mais rápido possível, pois esse projeto pretende se tornar um mecanismo de pesquisa de sites.