我正在使用Angular资源进行ajax调用。我有一个更新交易,其中我从数据库中获取数据,同时获取数据的数据是这样的: Angularjs将json数据转换为“[object Object]”
现在向此对象的空字段添加数据后,我再次将其发送到服务器,之前发送到服务器的数据正在变成这样的不同形式:
可能的原因是什么?我已经使用JSON.parse();但它不起作用。
- 编辑 -
这是我在哪里转换子对象转换为字符串代码
var serverResp = res.data;
$scope.importLC.main.customerName = serverResp.customerName;
$scope.importLC.main.customerAddress1 = serverResp.customerAddress1;
$scope.importLC.main.customerAddress2 = serverResp.customerAddress2;
$scope.importLC.main.customerAddress3 = serverResp.customerAddress3;
$scope.importLC.main.issueDate = $filter('date')(new Date(), 'dd-MM-yyyy');
serverResp = $scope.importLC;
angular.forEach(serverResp, function (value, key) {
angular.forEach(serverResp[key], function (v, k) {
if (typeof serverResp[key][k] === 'object') {
angular.forEach(serverResp[key][k], function (v1, k1) {
serverResp[key][k][k1] = String(serverResp[key][k][k1]);
});
} else {
serverResp[key][k] = String(serverResp[key][k]);
}
});
});
$scope.importLC = serverResp;
我要值到字符串,但整个对象转换得到转换成字符串。
- 编辑 -
我为什么数据转换点,实际上将数据发送到服务器我对数据应用验证,但验证文件只接受字符串值,所以我需要转换前数据转换为字符串,这里是在同一个地方的代码
//Convert object to string
function convertObjectToStringSingleObject(data) {
Object.keys(data).forEach(function (key) {
data[key] = String(data[key]);
});
return data;
}
我多了一个功能:
//Convert object to string
function convertObjectToStringMultiLevelObject(data) {
Object.keys(data).forEach(function (key) {
Object.keys(data[key]).forEach(function (key1) {
data[key][key1] = String(data[key][key1]);
});
});
return data;
}
现在,如果我使用convertObjectToStringMultiLevelObject
函数,那么我的代码工作正常,但是我的一些其他事务需要convertObjectToStringSingleObject
。有什么办法可以结合这两个函数(convertObjectToStringSingleObject
和convertObjectToStringMultiLevelObject
),并且组合函数应该足够智能地捕获对象的类型,我的意思是它可以是单层或多层次的json对象。
显示一些相关的javascript –
将对象转换为字符串会产生'[object Object]'。这可能会有多种原因。我们需要查看更多的代码来精确确定要将子对象转换为字符串的哪一点。 – Amadan