-->

我怎样才能让ServiceStack v3的符合jsonapi.org标准?(How can I m

2019-10-21 15:03发布

我试图利用一个Ember.js前端有ServiceStack v3的后端。 我遇到的问题是,灰烬数据期待JSON作为每jsonapi.org标准如下所示:

[{"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"}]

迫使我实现对前端“按摩”的数据转换成相应的格式自定义逻辑。 我想,以避免在执行客户端上的这种转换,直接落实到后端的回应。

任何协助或方向将不胜感激。

谢谢!

Answer 1:

你可以告诉ServiceStack的JSON序列发出camelCase与属性名称:

JsConfig.EmitCamelCaseNames = true;

你也想用你想返回,如JSON的形状相匹配的类型:

public class JsonApiClients
{
    public List<Client> Clients { get; set; }
}


Answer 2:

您可以实现串行器,是这样的:

App.ClientSerializer = DS.RESTSerializer.extend({
    normalizePayload: function(payload) {
      return {
        "client": payload
      };
    }
});


文章来源: How can I make ServiceStack v3 conform to jsonapi.org standards?