Generieren Sie leichtgewichtiges JSON mit DataContractJsonSerializer

Ich versuche, JSON mit C # und DataContractJsonSerializer in .Net 3.5 zu generieren. Das Problem ist, dass ich nicht herausfinden kann, wie ich die Struktur für das benötigte Ergebnis richtig aufbauen kann.

Ich habe versucht, die assoziativen Arrays von PHP sowohl mit Hashtabellen als auch mit Listenobjekten und Arraylisten zu reproduzieren, kann aber nicht herausfinden, wie ich mein Ergebnis mit DataContractJsonSerializer optimal generieren kann, ohne eine eigene rekursive Schleife zum Erstellen von JSON erstellen zu müssen.

Der nächstliegende Ansatz verwendet den Ansatz a Dictionary <string, Dictionary <string, string >>, aber das Ergebnis ist zu groß, da ich die Schlüssel nicht "benennen" kann.

Das bekomme ich:

[
   {
      "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"
         }
      ]
   }
]

Das ist was ich will

{
   "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"
}

Hat jemand eine Ahnung, wie ich dieses Stück JSON mit C # generieren kann, ohne das gesamte Json.NET-Framework laden zu müssen? Ich muss dies so schnell wie möglich generieren, da dieses Projekt darauf abzielt, eine Website-Suchmaschine zu werden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage