在Angular.js中修改JSON请求和响应中的字段/属性名

Changing field / property names in JSON requests and respnses in Angular.js

本文关键字:字段 响应 属性 请求 js Angular 修改 JSON 求和      更新时间:2023-09-26

我目前有如下JSON(来自澳大利亚邮政开发人员指南):

"PickupDetails_v1.Header": 
{ "Common_v1.UserName": "testuser", 
"Common_v1.AccessKey": "xxxxxxxxx", 
"Common_v1.CustomerID": 123 }

我想知道什么是最好的方法是能够有一个对象在JS没有名称空间(例如PickupDetails_v1)时从API检索数据,反之亦然时发送数据。基本上,我想知道在Angular中自定义JSON属性名的最佳方法。

例如:

var pickupDetails = { UserName: "testuser"; AccessKey: "xxxxxxx" }; 
$http.post(pickupDetails, "http://www.example.com/postageDetails"); // Should send the pickup details with the namespaces).
var storedPickupDetails = $http.get("http://www.example.com/postageDetails"); // Should have the same properties as pickupDetails.

我将在拦截器中这样做。

下面的例子摘自$http的文档,为简洁起见稍作修改。

$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
  return {
    // optional method
    'request': function(config) {
      // do something on success
      return config;
    },
    // optional method
    'response': function(response) {
      // do something on success
      return response;
    },
  };
});
$httpProvider.interceptors.push('myHttpInterceptor');

configresponse对象将包含有关请求和响应的所有数据,您可以挂钩到这些对象的data属性并更改键以添加/删除命名空间