共计 2688 个字符,预计需要花费 7 分钟才能阅读完成。
本人算法较弱,问了各种 GPT,始终不能得到期望的结果,特来求助各位爹。需要将一个树形的 JSON 数据,从每一个子节点的最后一级节点向上级节点平铺,转换为单层数据列表,以下是相关 原数据 、 目标字段 JSONPath 和 期望得到的结果。
原数据
{
"mainData": [
{
"id": 1,
"name:": "a",
"sub": [
{
"title": "A",
"used": true
},
{
"title": "B",
"used": false
}
]
},
{
"id": 2,
"name:": "c",
"sub": [
{
"title": "C",
"used": true
},
{
"title": "D",
"used": false,
"s_data": [
{
"s_data_id": 4,
"s_data_value": 0.1
},
{
"s_data_id": 5,
"s_data_value": 0.2
}
]
}
]
}
],
"moreData": [
{
"m_id": 3,
"m_name:": "e",
"sub": [
{
"s_title": "E",
"s_used": true,
"ext": {
"cid": "3_1",
"remark": "complex"
}
},
{
"s_title": "F",
"s_used": false,
"ext": {
"cid": "3_2",
"remark": "complex"
},
"children": [
{
"c_c_id": "3_2_1",
"c_c_title": "321"
},
{
"c_c_id": "3_2_2",
"c_c_title": "322"
}
]
}
]
}
]
}
目标字段 JSONPath 列表
["$.mainData[*].id",
"$.mainData[*].name",
"$.mainData[*].sub[*].title",
"$.mainData[*].sub[*].used",
"$.mainData[*].sub[*].s_data[*].s_data_id",
"$.mainData[*].sub[*].s_data[*].s_data_value",
"$.moreData[*].m_id",
"$.moreData[*].m_name",
"$.moreData[*].sub[*].s_title",
"$.moreData[*].sub[*].s_used",
"$.moreData[*].sub[*].ext.cid",
"$.moreData[*].sub[*].ext.remark",
"$.moreData[*].sub[*].children[*].c_c_id",
"$.moreData[*].sub[*].children[*].c_c_title"
]
期望得到的结果
[
{"$.mainData[*].id": 1,
"$.mainData[*].name": "a",
"$.mainData[*].sub[*].title": "A",
"$.mainData[*].sub[*].used": true
},
{"$.mainData[*].id": 1,
"$.mainData[*].name": "a",
"$.mainData[*].sub[*].title": "B",
"$.mainData[*].sub[*].used": false
},
{"$.mainData[*].id": 2,
"$.mainData[*].name": "c",
"$.mainData[*].sub[*].title": "C",
"$.mainData[*].sub[*].used": true
},
{"$.mainData[*].id": 2,
"$.mainData[*].name": "c",
"$.mainData[*].sub[*].title": "D",
"$.mainData[*].sub[*].used": false,
"$.mainData[*].sub[*].s_data[*].s_data_id": 4,
"$.mainData[*].sub[*].s_data[*].s_data_value": 0.1
},
{"$.mainData[*].id": 2,
"$.mainData[*].name": "c",
"$.mainData[*].sub[*].title": "D",
"$.mainData[*].sub[*].used": false,
"$.mainData[*].sub[*].s_data[*].s_data_id": 5,
"$.mainData[*].sub[*].s_data[*].s_data_value": 0.2
},
{"$.moreData[*].m_id": 3,
"$.moreData[*].m_name": "e",
"$.moreData[*].sub[*].s_title": "E",
"$.moreData[*].sub[*].s_used": true,
"$.moreData[*].sub[*].ext.cid": "3_1",
"$.moreData[*].sub[*].ext.remark": "complex"
},
{"$.moreData[*].m_id": 3,
"$.moreData[*].m_name": "e",
"$.moreData[*].sub[*].s_title": "F",
"$.moreData[*].sub[*].s_used": false,
"$.moreData[*].sub[*].ext.cid": "3_2",
"$.moreData[*].sub[*].ext.remark": "complex",
"$.moreData[*].sub[*].children[*].c_c_id": "3_2_1",
"$.moreData[*].sub[*].children[*].c_c_title": "321"
},
{"$.moreData[*].m_id": 3,
"$.moreData[*].m_name": "e",
"$.moreData[*].sub[*].s_title": "F",
"$.moreData[*].sub[*].s_used": false,
"$.moreData[*].sub[*].ext.cid": "3_2",
"$.moreData[*].sub[*].ext.remark": "complex",
"$.moreData[*].sub[*].children[*].c_c_id": "3_2_2",
"$.moreData[*].sub[*].children[*].c_c_title": "322"
}
]
正文完