如何使用angularjs序列化对象

How serialize objects with angularjs

本文关键字:对象 序列化 angularjs 何使用      更新时间:2023-09-26

如何在不使用$.paramjquery的情况下序列化对象?

我想要下面的对象:

var user = {username: 'ronald.araujo', password: '123456',};

具有以下输出:

username=ronald.araujo&password=123456

有什么建议吗?记得我会使用Angularjs或纯Javascript来完成这项工作。

编辑

我使用动词"保存"($resource)angularjs。如何设置标题"application/x-www-form-urlencoded"并进行序列化?

纯javascript可以做得很好:

function serializeObj(obj) {
    var result = [];
    for (var property in obj)
        result.push(encodeURIComponent(property) + "=" + encodeURIComponent(obj[property]));
    return result.join("&");
}
var user = {
    username: 'ronald.araujo',
    password: '123456'
};
var serialized = serializeObj(user);
console.log(serialized); //username=ronald.araujo&password=123456

原始答案的链接:如何在AngularJS中用$http发布URL编码的表单数据?

您可以使用$httpParamSerializerJQLike

.controller(function($http, $httpParamSerializerJQLike) {
  //...
 var serializedUser = $httpParamSerializerJQLike(user);
});

您可以在此处查看$httpParamSerializerJQLike文档。

对于angular 2,我认为您最好使用以下装饰器https://github.com/pleerock/class-transformer转换、序列化和反序列化对象。

要了解有关装饰器的更多信息,请参阅https://angular.io/docs/ts/latest/cookbook/ts-to-js.html