为 angular2 创建管道以迭代 JSON 到数组
Create pipe for angular2 for iterating JSON to array
我正在尝试使用以下 JSON 数据并将其转换为数组,因此我可以 运行 *ngFor='let item of items'
并根据 item.name
显示数据等...
我尝试了以下方法:
var out = [];
for(var key1 in object) {
out[key1] = key1;
for(var key2 in object[key1]) {
for(var key3 in object[key2]) {
out[key1][key2] = key3;
}
}
console.log(out);
}
但我只是将标题作为键和值。
var object = {
"compressorClutch": {
"name": "compressorClutch",
"param": "Y",
"register": "64",
"type": "b"
},
"batteryLive": {
"name": "batteryLive",
"param": "Y",
"register": "53",
"type": "b"
},
"batteryGround": {
"name": "batteryGround",
"param": "Y",
"register": "85",
"type": "b"
},
"mainsCable": {
"name": "mainsCable",
"param": "N",
"register": "",
"type": "b"
},
"kcb": {
"name": "kcb",
"param": "13",
"register": "337",
"type": "i"
},
"config": "LorA-F"
}
用Object.keys(object)遍历object的key,会return一个数组,然后用array的map方法遍历这个key数组,return每个json 对象中的项目并将其分配给数组中的一个位置。
const items = Object.keys(object).map( key => object[key] )
如果您想使用 JSONArray,它的格式应该如下所示:
object = [
{
'name': 'compressorClutch',
'param': 'Y',
'register': '64',
'type': 'b'
},
{
'name': 'batteryLive',
'param': 'Y',
'register': '53',
'type': 'b'
},
{
'name': 'batteryGround',
'param': 'Y',
'register': '85',
'type': 'b'
},
{
'name': 'mainsCable',
'param': 'N',
'register': '',
'type': 'b'
},
{
'name': 'kcb',
'param': '13',
'register': '337',
'type': 'i'
}
];
可以在*ngFor
中轻松显示数据。作为名称的对象键是多余的,因为您在 JSONObject 中也有一个 'name' 字段。要找到与 'mainCables' 等搜索查询相匹配的正确对象,您可以根据其中一个对象值过滤数组。我希望这可以对你正在尝试做的事情有所帮助。
我正在尝试使用以下 JSON 数据并将其转换为数组,因此我可以 运行 *ngFor='let item of items'
并根据 item.name
显示数据等...
我尝试了以下方法:
var out = [];
for(var key1 in object) {
out[key1] = key1;
for(var key2 in object[key1]) {
for(var key3 in object[key2]) {
out[key1][key2] = key3;
}
}
console.log(out);
}
但我只是将标题作为键和值。
var object = {
"compressorClutch": {
"name": "compressorClutch",
"param": "Y",
"register": "64",
"type": "b"
},
"batteryLive": {
"name": "batteryLive",
"param": "Y",
"register": "53",
"type": "b"
},
"batteryGround": {
"name": "batteryGround",
"param": "Y",
"register": "85",
"type": "b"
},
"mainsCable": {
"name": "mainsCable",
"param": "N",
"register": "",
"type": "b"
},
"kcb": {
"name": "kcb",
"param": "13",
"register": "337",
"type": "i"
},
"config": "LorA-F"
}
用Object.keys(object)遍历object的key,会return一个数组,然后用array的map方法遍历这个key数组,return每个json 对象中的项目并将其分配给数组中的一个位置。
const items = Object.keys(object).map( key => object[key] )
如果您想使用 JSONArray,它的格式应该如下所示:
object = [
{
'name': 'compressorClutch',
'param': 'Y',
'register': '64',
'type': 'b'
},
{
'name': 'batteryLive',
'param': 'Y',
'register': '53',
'type': 'b'
},
{
'name': 'batteryGround',
'param': 'Y',
'register': '85',
'type': 'b'
},
{
'name': 'mainsCable',
'param': 'N',
'register': '',
'type': 'b'
},
{
'name': 'kcb',
'param': '13',
'register': '337',
'type': 'i'
}
];
可以在*ngFor
中轻松显示数据。作为名称的对象键是多余的,因为您在 JSONObject 中也有一个 'name' 字段。要找到与 'mainCables' 等搜索查询相匹配的正确对象,您可以根据其中一个对象值过滤数组。我希望这可以对你正在尝试做的事情有所帮助。