Javascript 如何在控制器中格式化JSON数据
我不熟悉AngularJS和JSON。我陷入了这个阶段,我想过滤JSON中不必要的字段 我在控制器中使用了以下代码:Javascript 如何在控制器中格式化JSON数据,javascript,angularjs,arrays,json,Javascript,Angularjs,Arrays,Json,我不熟悉AngularJS和JSON。我陷入了这个阶段,我想过滤JSON中不必要的字段 我在控制器中使用了以下代码: var data = $scope.choices; // Is an array var datav = (JSON.stringify(data)); // array converted into a string need to be filtered alert(datav); 如果我alertdatav得到的是下面提到的JSON数据 [{"title":"g","$
var data = $scope.choices; // Is an array
var datav = (JSON.stringify(data)); // array converted into a string need to be filtered
alert(datav);
如果我alertdatav得到的是下面提到的JSON数据
[{"title":"g","$$hashKey":"object:3"},{"id":"choice2","$$hashKey":"object:6","title":"ghgh"},{"id":"choice3","$$hashKey":"object:11","title":"fgh"}]
我只想要标题,我不想要$$hashKey和id。如何做到这一点?您可以使用函数实现您想要的功能,并仅返回您感兴趣的属性
var data=[{title:g,$$hashKey:object:3},{id:choice2,$$hashKey:object:6,title:ghgh},{id:choice3,$$hashKey:object:11,title:fgh}];
var datav=data.mapd=>{title:d.title};
console.logdatav您可以使用angular.toJson代替JSON.stringify,后者将为您省略$$hashkey
将输入序列化为JSON格式的字符串。前导$$字符的属性将被剥离,因为AngularJS在内部使用此符号
像这样,
var myobj=[{
标题:g,
$$hashKey:对象:3
}, {
id:choice2,
$$hashKey:对象:6,
标题:ghgh
}, {
id:choice3,
$$hashKey:object:11,
标题:fgh
}]
console.logangular.toJsonmyobj
console.logJSON.stringifymyobj
这就是如何从可使用的选项数组中映射所需对象的方法
首次接收阵列时:
const data = [
{title: "hello" , "unwanted" : 34},
{title: "hello" , "unwanted" : 35},
{title: "hello" , "unwanted" : 36},
{title: "hello" , "unwanted" : 37},
]
const wanted = data.map( d => {
return {title: d.title}
});
console.log(wanted);
我相信您正在使用第三方库。我猜是角度材质,它向下拉数组值添加了类似的$$haskey属性。理想情况下,这不会对数组进行任何更改,并且您应该仍然能够获取数组对象的属性 但是,如果您指定要删除这些不需要的属性,则应该使用.map函数从此数组中创建一个新数组。例如:
var newArray= orginalArray.map(element => ({title: element.title}));
您可以取出任意数量的属性,并留下不需要的属性。新数组与旧数组是完全不同的引用
希望这有帮助试试这个
var app=angular.modulemyapp,[];
app.controllerNameCtrl,函数$scope{
var data=[{title:g,$$hashKey:object:3},{id:choice2,$$hashKey:object:6,title:ghgh},{id:choice3,$$hashKey:object:11,title:fgh}];
var data1=data.mapd=>{title:d.title};
console.logdata1;
};
到目前为止你做了什么?你试过了吗?使用.map只返回你想要的标题,而不是因为idI给了他使用map函数的想法,他肯定能解决他需要的。@PrashanthHarish当然,我觉得这个问题有点误导,会为你编辑的。你可以在这里接受其他合适的答案什么是str??确保它是一个数组。这就是字符串na??您将数组字符串化为字符串。。现在解析它,然后使用.mapam gettin log作为[undefined,undefined]。@PrashanthHarish我的错误是,我犯了一个轻微的语法错误。看看这个
var newArray= orginalArray.map(element => ({title: element.title}));