我是JSON数据操作的新手,我需要一些帮助。
我有一个JSON文件,如下所示:
[
{
"plannification": {
"Data": 1,
"DataType": "GB",
"InclusionOption1": ".",
"Default": false,
"PropositionId": "GBT13456",
"EssentialLink": "greatpdf.com/pdf.pdf",
"Term": "1",
"Segment": "part",
"Id": "653284",
}
},
{
"plannification": {
"Data": 1,
"DataType": "FR",
"inclusionOption1": ".",
"default": false,
"PropositionId": "FRT13456",
"EssentialLink": "greatpdf.com/pdf2.pdf",
"term": "1",
"Segment": "pro",
"Id": "984532",
}
}
]我想将这个文件转换为object,并且只从"Segment": “pro”,中提取数据,如下所示:
{
984532:{
Segment: "pro",
EssentialLink: "greatpdf.com/pdf.pdf",
PropositionId: "FRT13456",
},
etc.. {},
}我该从哪里开始呢?
发布于 2018-02-27 13:26:56
您可以在值为pro的Segment上使用array#filter筛选数组。可以使用array#reduce遍历数组,然后使用Object#values()取出每个对象的值并创建新对象。
const data = [{ "plannification": { "Data": 1, "DataType": "GB", "InclusionOption1": ".", "Default": false, "PropositionId": "GBT13456", "EssentialLink": "greatpdf.com/pdf.pdf", "Term": "1", "Segment": "part", "Id": "653284" } }, { "plannification": { "Data": 1, "DataType":"FR", "inclusionOption1": ".", "default": false, "PropositionId": "FRT13456", "EssentialLink": "greatpdf.com/pdf2.pdf", "term": "1", "Segment": "pro", "Id": "984532", } } ],
result = data.filter(o => {
let { Segment } = Object.values(o)[0];
return Segment === 'pro';
}).reduce((r,o) => {
let { Id, Segment, PropositionId, EssentialLink } = Object.values(o)[0];
r[Id] = { Segment, PropositionId, EssentialLink };
return r;
},{})
console.log(result);
发布于 2018-02-27 13:25:33
1-读取json文件
2-迭代对象数组
3-对于每个对象,检查所需的属性
4-如果它与您想要的匹配,则读取对象的属性并构造对象
发布于 2018-02-27 13:26:22
您的数据结构无效,请先更正您编写json对象数组的方式,这样我才能找出
https://stackoverflow.com/questions/49001624
复制相似问题