我正在尝试使用带有ServiceStack v3后端的Ember.js前端。我遇到的问题是Ember Data正在按照jsonapi.org标准期待JSON:
[{"clients":
[
{"clientID":80,"name":"Test Client 6","acronym":"TCL6","website":"http://www.tcl6.com"},
{"clientID":81,"name":"Test Client 7","acronym":"TCL7","website":"http://www.tcl7.com"}
]
}]
但ServiceStack将数据序列化为以下内容:
[{"ClientID":80,"Name":"Test Client 6","Acronym":"TCL6","Website":"http://www.tcl6.com"},
{"ClientID":81,"Name":"Test Client 7","Acronym":"TCL7","Website":"http://www.tcl7.com"}]
强迫我在前端实现自定义逻辑,以便按摩"将数据转换为适当的格式。我希望避免在客户端执行此转换,并将其直接应用到后端的响应中。
非常感谢任何协助或指示。
谢谢!
答案 0 :(得分:3)
您可以告诉ServiceStack的JSON Serializer使用以下内容发出camelCase
个属性名称:
JsConfig.EmitCamelCaseNames = true;
您还需要使用与要返回的JSON形状相匹配的类型,例如:
public class JsonApiClients
{
public List<Client> Clients { get; set; }
}
答案 1 :(得分:0)
您可以实现一个序列化程序,如下所示:
App.ClientSerializer = DS.RESTSerializer.extend({
normalizePayload: function(payload) {
return {
"client": payload
};
}
});