tengo un diccionario que estoy usando la serialización de la serializador json.net, y actualmente está produciendoHacer diccionario Web API serializar con el valor clave como datos utilizando la clave de atributo
{"phrases":[{"Key":"my-key1","Value":"blah"},{"Key":"my-key2","Value":"blah2"}]}
sin embargo yo quiero que la salida
{"phrases":["my-key1":"blah"},{"my-key2":"blah2"}]}
mi modelo se parece
public class Phrases
{
public Dictionary<string, string> phrases;
}
¿existe un atributo de datos que pueda aplicarse a las frases modelo para hacer que esto suceda?
encontré la siguiente, pero no quieren volver a ser una cadena Serialize into a key-value dictionary with Json.Net?
ACTUALIZACIÓN:
les extiendo el controlador Web API de la siguiente manera, si uso JsonConvert.SerializeObject() Yo entiendo la serialización correcta, sin embargo, luego tendría una cadena para regresar.
public class PhraseController : ApiController
{
private IApplicationModel applicationModel;
public Phrases Get(string id)
{
var locale = new CultureInfo(id).LCID;
var phrases = applicationModel.Phrases.Where(x => x.Locale = locale).ToDictionary(x => x.Name, y => y.Value);
return new Phrases() { phrases = phrases };
}
public PhraseController(IApplicationModel applicationModel)
{
this.applicationModel = applicationModel;
}
}
Qué versión json.net utiliza? Debido a que la versión de "Newtonsoft.Json" = "4.0.8" 'produce esto:' {"phrases": {"my-key1": "blah", "my-key2": "blah2"}} 'using' JsonConvert.SerializeObject (frases); ' – nemesv
@nemesv ha actualizado mi pregunta – Tom
Me pregunto si mi problema es que todavía está usando el DataContractJsonSerializer en lugar de json.net – Tom