¿Cómo puedo devolver un Dictionary <string, Object> como JsonResult, Y obtener el resultado correcto en JavaScript?

Estoy construyendo mi JsonResult en Controller agregando información adicional a un JsonResult ya existente (devuelto por un método diferente). Para agregar más propiedades, convertí el JsonResult inicial en un Diccionario:

IDictionary<string, object> wrapper = (IDictionary<string, object>)new 
     System.Web.Routing.RouteValueDictionary(json.Data);

Luego solo agrego datos escribiendowrapper["..."] = "value".

El método devuelve un nuevo JsonResult, con un contenedor como .Data:

new JsonResult() { wrapper, JsonRequestBehavior.AllowGet };

y ahí es donde comienzan los problemas; Si bien la comunicación se realiza perfectamente y se llama a la función de éxito, la matriz resultante que uso en JavaScript no tiene la estructura limpia que espero: en lugar de acceder a los valores comoval = ret.PropName1; Termino teniendo que acceder a una matriz indexada simple, que contiene a su vez un diccionario con dos pares:{ "Value"="val, "Key"="PropName1" }; (entonces algo comoo[0].Key me daría el nombre de la propiedad)

Me gustaría saber si hay una forma inteligente y rápida de reescribir la creación de JsonResult en el Controlador, para obtener un diccionario limpio y agradable en la Vista. Tengo un par de ideas que tengo, pero no son particularmente limpias: podría tirar la reutilización de JsonResult en el lado del servidor y simplemente hacer un objeto anónimo con todas las propiedades correctas; o podría hacer una función de traducción en Javascript que podría traducir el resultado en una nueva matriz (). Estoy buscando mejores soluciones.

[Editar más tarde] La matriz viene de la manera en que lo hace porque el diccionario se definió como<string, object>. Si fuera<string, string>, se enviaría de la forma en que lo esperaba originalmente. Pero como en realidad uso objetos de esa bolsa, lo dejaré como está y pasaré la respuesta json a través de la función a continuación.

Respuestas a la pregunta(1)

Su respuesta a la pregunta