将json字符串转换为随机数个json对象中的对象
Converting json string to object inside random number of JSON objects
我遇到了一个问题,如何为随机数量的对象更改json对象中的json字符串。让我用我的代码和注释来进一步解释这一点。
我有一个工厂,它提供json对象
//Factory for products
app.factory('productsFactory', ['$http', '$location', function($http, $location){
var factory = {};
factory.getlatestProductsList = function(n){
return $http.get($location.protocol() + '://' + $location.host() + '/server/api/products/latest/'+n);
}
return factory;
}]);
这个工厂返回一些随机数目的对象
0: Object
active: "1"
alias: "baumbach-circle"
date_c: "2016-01-06 08:09:54"
date_u: null
description: "Corrupti fugit iste quo sunt quidem voluptatibus dolorem. Eos velit architecto veritatis doloribus. Corporis sequi cupiditate possimus voluptates ut consequatur. Accusantium libero qui est sunt et."
id_category: "46"
id_product: "25"
id_user: "177"
images: "[{"thumbImage":"http:'/'/lorempixel.com'/250'/150'/?63763","image":"http:'/'/lorempixel.com'/1024'/768'/?52630","position":0},{"thumbImage":"http:'/'/lorempixel.com'/250'/150'/?99795","image":"http:'/'/lorempixel.com'/1024'/768'/?84669","position":1},{"thumbImage":"http:'/'/lorempixel.com'/250'/150'/?17506","image":"http:'/'/lorempixel.com'/1024'/768'/?88926","position":2},{"thumbImage":"http:'/'/lorempixel.com'/250'/150'/?73869","image":"http:'/'/lorempixel.com'/1024'/768'/?91917","position":3},{"thumbImage":"http:'/'/lorempixel.com'/250'/150'/?70019","image":"http:'/'/lorempixel.com'/1024'/768'/?18509","position":4}]"
name: "Baumbach Circle"
__proto__: Object
1: Object
active: "1"
alias: "elta-road"
date_c: "2016-01-06 08:09:53"
date_u: null
description: "Culpa perferendis dolores rerum deleniti vero cumque. Similique explicabo beatae est quo sit nisi. Et a voluptatem nihil in. Voluptates modi qui est ducimus corrupti."
id_category: "46"
id_product: "24"
id_user: "73"
images: "[{"thumbImage":"http:'/'/lorempixel.com'/250'/150'/?53746","image":"http:'/'/lorempixel.com'/1024'/768'/?49502","position":0},{"thumbImage":"http:'/'/lorempixel.com'/250'/150'/?75052","image":"http:'/'/lorempixel.com'/1024'/768'/?77727","position":1},{"thumbImage":"http:'/'/lorempixel.com'/250'/150'/?32463","image":"http:'/'/lorempixel.com'/1024'/768'/?76121","position":2},{"thumbImage":"http:'/'/lorempixel.com'/250'/150'/?61377","image":"http:'/'/lorempixel.com'/1024'/768'/?89434","position":3},{"thumbImage":"http:'/'/lorempixel.com'/250'/150'/?86873","image":"http:'/'/lorempixel.com'/1024'/768'/?82513","position":4}]"
name: "Elta Road"
__proto__: Object
问题是图像json是字符串格式的,所以我必须使用json.parse(至少我这么认为,因为我是新手)将它们转换为json
我的问题是:有没有一些简单的好方法可以将所有图像数据解析为json,或者我必须用forEach来做这件事?如果有,代码会是什么样子。我不想在工厂内实现这种效果,所以我不必在调用这个工厂的每个控制器中重复代码。
如果你需要任何额外的信息,请让我知道,我会提供。提前谢谢。
在返回之前,您可以编辑$http返回的答案
app.factory('productsFactory', ['$http', '$location', function($http, $location){
var factory = {};
factory.getlatestProductsList = function(n){
var url = $location.protocol() + '://' + $location.host() + '/server/api/products/latest/'+n;
return $http({
method: 'GET',
url: url
}).then(function successCallback(response) {
// you can edit the response her, and parse it
return response ;
}, function errorCallback(response) {
});
}
return factory;
}]);
您可以使用$http返回promise的事实,然后在返回promise之前对数据进行一些处理。这对你有用吗?让我知道你是否需要在ES5
factory.getlatestProductsList = function(n){
return $http.get($location.protocol() + '://' + $location.host() + '/server/api/products/latest/'+n)
.then(data => data.map(elem => {
var tmp = Json.parse(elem.images);
elem.images = tmp
return elem;
}));
在es5 中
factory.getlatestProductsList = function(n){
return $http.get($location.protocol() + '://' + $location.host() + '/server/api/products/latest/'+n)
.then(function(data) {
return data.map(function(elem) {
var tmp = Json.parse(elem.images);
elem.images = tmp
return elem;
});
});
如果有人想看看它看起来像,就粘贴代码
//Factory for products
app.factory('productsFactory', ['$http', '$location', function($http, $location){
var factory = {};
factory.getlatestProductsList = function(n){
var url = $location.protocol() + '://' + $location.host() + '/server/api/products/latest/'+n;
return $http({
method: 'GET',
url: url
}).then(function successCallback(response) {
var pros = response.data;
pros.forEach(function(item){
var pictures = JSON.parse(item.images);
delete item.images;
item.images = pictures;
})
return pros;
},function errorCallback(response) {
console.log('error fetching latest products: ' + response);
});
}
return factory;
}]);
相关文章:
- jQuery匹配JSON对象的部分文本
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 我应该如何将响应数据保存在对象(json)中以获得更好的操作和性能
- 用javascript从列表对象(JSON的)构建diffrent选项卡
- php请求带有多个对象json-jquery
- AngularJS,过滤器:如何将一个巨大的对象(JSON)变成一个数组
- 动态属性对象 - JSON
- JavaScript 对象 (JSON) 中的动态设置值
- 从数组查询获取对象 JSON 值时出错
- 使用jQuerygetJSON将多维对象JSON转换为HTML
- 需要从 Angular JS 应用程序中的另一个 JSON 对象数组填充 JSON 数组的每个对象 JSON 对象数组
- 嵌套对象JSON排序JavaScript
- PHP在MySQL中保存来自Javascript的对象"JSON.stringify"通过Ajax
- 将JavaScript对象/ JSON转换为PHP数组
- JSON对象.JSON对象内部
- 访问对象的对象- JSON API
- 数组到对象JSON
- Message":"传入的无效对象(JSON数据格式化问题)