【发布时间】:2012-05-18 14:52:12
【问题描述】:
我有一个字典,我正在使用 json.net 序列化程序对其进行序列化,它目前正在生成
{"phrases":[{"Key":"my-key1","Value":"blah"},{"Key":"my-key2","Value":"blah2"}]}
但我希望它输出
{"phrases":["my-key1":"blah"},{"my-key2":"blah2"}]}
我的模型看起来像
public class Phrases
{
public Dictionary<string, string> phrases;
}
是否有可以应用于短语模型的数据属性来导致这种情况发生?
我找到了以下内容,但不想返回字符串 Serialize into a key-value dictionary with Json.Net?
更新:
我正在扩展 web api 控制器,如下所示,如果我使用 JsonConvert.SerializeObject() 我确实得到了正确的序列化,但是我会返回一个字符串。
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;
}
}
【问题讨论】:
-
您使用哪个 json.net 版本?因为
"Newtonsoft.Json" version="4.0.8"产生这个:{"phrases":{"my-key1":"blah","my-key2":"blah2"}}usingJsonConvert.SerializeObject(phrases); -
@nemesv 更新了我的问题
-
我想知道我的问题是它仍在使用 DataContractJsonSerializer 而不是 json.net
标签: c# asp.net asp.net-mvc-3 json.net asp.net-web-api