Javascript Angularjs将json数据转换为;[对象对象]”;
我正在使用Angular资源进行ajax调用。我有一个更新事务,在该事务中,我从数据库获取数据,同时获取数据,数据如下所示: 现在,在将数据添加到此对象的空字段后,我再次将其发送到服务器,在发送到服务器之前,数据将转换为以下不同形式: 可能的原因是什么?我已经使用了JSON.parse();但它不起作用 --编辑-- 这是我将子对象转换为字符串的代码Javascript Angularjs将json数据转换为;[对象对象]”;,javascript,angularjs,arrays,string,object,Javascript,Angularjs,Arrays,String,Object,我正在使用Angular资源进行ajax调用。我有一个更新事务,在该事务中,我从数据库获取数据,同时获取数据,数据如下所示: 现在,在将数据添加到此对象的空字段后,我再次将其发送到服务器,在发送到服务器之前,数据将转换为以下不同形式: 可能的原因是什么?我已经使用了JSON.parse();但它不起作用 --编辑-- 这是我将子对象转换为字符串的代码 var serverResp = res.data; $scope.importLC.main
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对象。在将对象转换为字符串时,请使用下面的函数
var str = JSON.stringify(obj);
在从字符串化对象转换为Javascript对象时使用
var obj = JSON.parse(str);
编辑
如果值为object,则使用JSON.stringify
function convertObjectToStringSingleObject(data) {
Object.keys(data).forEach(function (key) {
if (typeof data[key] === "object") {
data[key] = JSON.stringify(data[key]);
} else {
data[key] = String(data[key]);
}
});
return data;
}
将对象转换为字符串时,请使用下面的函数
var str = JSON.stringify(obj);
在从字符串化对象转换为Javascript对象时使用
var obj = JSON.parse(str);
编辑
如果值为object,则使用JSON.stringify
function convertObjectToStringSingleObject(data) {
Object.keys(data).forEach(function (key) {
if (typeof data[key] === "object") {
data[key] = JSON.stringify(data[key]);
} else {
data[key] = String(data[key]);
}
});
return data;
}
在对这两个函数进行了一些研究和开发之后,我创建了一个组合函数,该函数允许我将对象(不同级别的对象)值转换为字符串,在我的情况下,对象的最大深度为2,因此该函数如下所示:
function convertObjectToString(data) {
Object.keys(data).forEach(function (key) {
if (data[key] && typeof data[key] === 'object') {
Object.keys(data[key]).forEach(function (key1) {
data[key][key1] = String(data[key][key1]);
});
} else if (data[key] && typeof data[key] === 'string' || typeof data[key] === 'number') {
data[key] = String(data[key]);
} else {
data[key] = "";
}
});
return data;
}
我实现了我想要的,因为我知道我的目标的深层次,但我将始终欢迎一个能够检查深层次并做出相应响应的功能。谢谢。在对这两个函数进行了一些研究和开发之后,我创建了一个组合函数,该函数允许我将对象(不同级别的对象)值转换为字符串,在我的情况下,对象的最大深度为2,因此该函数如下所示:
function convertObjectToString(data) {
Object.keys(data).forEach(function (key) {
if (data[key] && typeof data[key] === 'object') {
Object.keys(data[key]).forEach(function (key1) {
data[key][key1] = String(data[key][key1]);
});
} else if (data[key] && typeof data[key] === 'string' || typeof data[key] === 'number') {
data[key] = String(data[key]);
} else {
data[key] = "";
}
});
return data;
}
我实现了我想要的,因为我知道我的目标的深层次,但我将始终欢迎一个能够检查深层次并做出相应响应的功能。谢谢。展示一些相关的javascriptConverting对象到字符串生成
[object object]
。发生这种情况的原因有很多。我们需要从您身上看到更多的代码,以准确地指出将子对象转换为字符串的点。显示一些相关的javascriptConverting对象到字符串生成[object object]
。发生这种情况的原因有很多。我们需要从您那里看到更多的代码,以准确地指出您将子对象转换为字符串的点。我不想将整个对象转换为字符串,我只想将值转换为字符串。您正在转换的值是object,这就是为什么它会显示为“[object object]”。是的,但是如果我使用的是convertObjectToString多层次对象
函数,那么代码现在工作正常。我唯一的问题是我想要一个convertObjectToString多层次对象
和convertObjectToString单层次对象
的组合函数,这样我的所有其他事务也可以完美工作。这可能是个问题因为您可能不知道对象的深度,所以您需要创建递归函数我不想将整个对象转换为字符串,我只想将值转换为字符串。您正在转换的值是object,这就是为什么它被命名为“[object object]”。是的,但是如果我使用的是convertObjectToString多层次对象
函数,那么代码现在工作正常。我唯一的问题是我想要一个convertObjectToString多层次对象
和convertObjectToString单层次对象
的组合函数,这样我的所有其他事务也可以完美工作。这可能是个问题因为您可能不知道对象的深度,所以需要创建递归函数