Serializar una matriz en objetos JSON usando .NET

La serialización de la matriz devuelve el siguiente JSON:

[{"Code":"AAAA","Description":"Description of AAAA"},{"Code":"BBBB","Description":"Description of BBBB"}] 

Mi objective es devolver el siguiente JSON:

 {"AAAA":{"Description":"Description of AAAA"},"BBBB":{"Description":"Description of BBBB"}} 

Puede lograr algo similar (no es exactamente lo que espera) si, en lugar de serializar una matriz, cree un Diccionario temporal y serialícelo.

 var dict = new Dictionary(); foreach (YourClass yourObj in listOfObjs) { dict[yourObj.Code] = yourObj; } // then serialize "dict" 

Podría agregar una regla a su serializador JSON para evitar que se YourClass propiedad de “código” en YourClass , y terminará con un objeto JSON exactamente como se muestra en su ejemplo.

Deberá usar una clase que tenga las propiedades “AAAA” y “BBBB”, o tendrá que serializar un diccionario en su lugar. Tal como está, estás serializando una matriz y obteniendo una matriz.

La tabla en esta publicación de blog muestra varios puntos de inicio de búsqueda.

.Net ha incorporado System.Web.Script.Serialization.JavaScriptSerializer, aquí, con ejemplos

El .Net uno no serializa especialmente el Diccionario de la manera que usted desea, pero creo que algunos otros lo hacen. Sin embargo, creo que hay razones para NO querer una rutina de serialización general de la forma que has solicitado, aunque ciertamente no puedo enumerarlas.