[英]how to display/differentiate data from json response
I have following dynamic response in JSON
, so I have one list object and I want to display and differentiate data using form_id. 我在
JSON
具有以下动态响应,因此我有一个列表对象,我想使用form_id显示和区分数据。 please tell me how to achieve this... 请告诉我如何实现此目标...
//list object
formsSummery: any = [];
this.formsSummery = (data[0] as any).data_points;
[ {
"job" : 10,
"data_points" : [ {
"user_id" : 11,
"ingest_time" : "2017-09-26T13:17:33.489Z",
"form_id" : 2,
"form_revision" : 1,
"device_id" : 0,
"field1" : "2.2",
"field2" : "two",
"field3" : "2",
"field4" : "1"
}, {
"user_id" : 11,
"ingest_time" : "2017-09-26T13:03:56.757Z",
"form_id" : 7,
"form_revision" : 1,
"device_id" : 0,
"field1" : "thirteen",
"field2" : "fourteen",
"field3" : "fifteen",
"field4" : "sixteen"
}, {
"user_id" : 11,
"ingest_time" : "2017-09-27T11:58:59.735Z",
"form_id" : 7,
"form_revision" : 1,
"device_id" : 0,
"field1" : "17",
"field2" : "TWENTY",
"field3" : "19",
"field4" : "1",
"field5master" : "EIGHTEEN",
"field6" : "TRUE"
}, {
"user_id" : 11,
"ingest_time" : "2017-09-26T07:23:26.468Z",
"form_id" : 7,
"form_revision" : 1,
"device_id" : 0,
"field1" : "five",
"field2" : "seven",
"field3" : "six",
"field4" : "eight"
}, {
"user_id" : 11,
"ingest_time" : "2017-09-26T07:24:14.729Z",
"form_id" : 7,
"form_revision" : 1,
"device_id" : 0,
"field1" : "nine",
"field2" : "eleven",
"field3" : "ten",
"field4" : "twele"
}, {
"user_id" : 11,
"ingest_time" : "2017-09-26T08:29:36.728Z",
"form_id" : 2,
"form_revision" : 1,
"device_id" : 0,
"field1" : "2.1",
"field2" : "one",
"field3" : "1",
"field4" : "true"
}, {
"user_id" : 11,
"ingest_time" : "2017-09-26T07:18:10.401Z",
"form_id" : 7,
"form_revision" : 1,
"device_id" : 0,
"field1" : "one",
"field2" : "three",
"field3" : "two",
"field4" : "four"
}, {
"user_id" : 11,
"ingest_time" : "2017-09-27T11:57:06.188Z",
"form_id" : 2,
"form_revision" : 1,
"device_id" : 0,
"field1" : "2.3",
"field2" : "THREE",
"field3" : "3",
"field4" : "TRUE"
} ]
} ]
I want to display data using form_id
. 我想使用
form_id
显示数据。 I want to display data in the table using form_id (all arrays for form_d=7 in one table) like this, and a number of table = number of form ids. 我想像这样使用form_id(一个表中的form_d = 7的所有数组)在表中显示数据,并且表的数量=表单ID的数量。
I would suggest first ordering your data_points
array, with something like this post . 我建议您首先对
data_points
数组进行排序,例如this post 。 Then use a Set
to keep track of the form_id's
in your array. 然后使用
Set
来跟踪数组中的form_id's
。 As you filter, if the form_id
is already in your Set
, you'll ignore it. 过滤时,如果
form_id
已在Set
,则将忽略它。
Example: 例:
let x = new Set();
const y = this.formsSummery[0].data_points.filter(z => {
return !x.has(z.form_id) ? x.add(z.form_id) : null
})
So if !x.has(z.form_id)
evaluates to true
, x.add(z.form_id)
will be returned, which will also evaluate to true
- and the desired object will be added to your filtered array. 因此,如果
!x.has(z.form_id)
计算结果为true
, x.add(z.form_id)
将被退回,这也将评估为true
-和所需的对象将被添加到您的滤波阵列。
var ret = 0
function filter(filterId) {
data = formsSummery[0].data_points;
for (i in data) {
if (data[i].form_id == filterId) {
if (ret != 0 && (new Date(data[i].ingest_time).getTime()) >= (new Date(ret.ingest_time).getTime())) {
ret = (data[i]);
}
else {
ret = (data[i])
}
}
}
return ret;
}
var result = filter(2) //your filter id
console.log(result)
not sure about date time 不确定日期时间
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.