尝试将带有嵌套对象的json转换为多个对象时遇到问题。在下面查看我的json,您可以看到我得到的示例
{
"name": "Isa Hemd ",
"colors": [
{
"color": "Deep Forest",
"sizes": [
{
"GTIN": "5712973396589",
"size": "34"
},
{
"GTIN": "5712973396596",
"size": "36"
},
{
"GTIN": "5712973396602",
"size": "38"
},
{
"GTIN": "5712973396619",
"size": "40"
},
{
"GTIN": "5712973396626",
"size": "42"
},
{
"GTIN": "5712973396633",
"size": "44"
},
{
"GTIN": "5712973396640",
"size": "46"
},
{
"GTIN": "5712973396657",
"size": "48"
}
],
"code_color": "59141"
}
],
"materials": [
{
"Viscose": "65"
},
{
"Modal": "35"
}
],
"description": "Dieses Hemd ist ein echtes Lieblingsstück im Kleiderschrank. Es hat ein klassisches Hemddesign mit Hemdkragen und langen Ärmeln. Die Knopfleiste des Hemds wird durch ein elegantes Streifen-Design abgerundet. Das Hemd besteht darüber hinaus zu 100% aus Viskose, die sich leicht und angenehm auf der Haut anfühlt. Ihre Kleidung von LauRie wird ohne Allergene und gesundheitsschädliche Chemikalien hergestellt.",
"style_number": "30821"
}
我想为所有颜色->尺寸组合(例如
)制作单独的对象 {
"color": "Deep Forest",
"size": "34",
"GTIN": "5712973396589"
},
{
"color": "Deep Forest",
"size": "36",
"GTIN": "5712973396596"
}
...
具有更多数据的c。可能正在使用。
但是使用colors [*] .sizes [*]时,我看不到如何在进入尺寸之前先从颜色中获取值。认为也许使用数组索引是一种方法,因为我可以对其稍加修改,然后保存内容以供日后获取,但是显然也无法获得该值:)
对于x和y的每种组合,我如何将具有大量嵌套数组的json转换为多个对象?
目的是稍后将每个对象组合的一行转换为excel,在此之前,我可以使用jmespath进行转换,然后使用jsonschema验证内容。
答案 0 :(得分:0)
我找到了一种硬编码的方法来获取结果,如果有时间,我将尝试动态地进行处理,但是现在这是硬编码的查询:
@.{sizes: sizes[*], colors: {color: color}} | merge({colors: colors}, sizes[*]) | [merge("0","colors"),merge("1","colors"),merge("2","colors"),merge("3","colors"),merge("4","colors"),merge("5","colors"),merge("6","colors"),merge("7","colors")]
它给出:
[
{
"GTIN": "5712973396589",
"size": "34",
"color": "Deep Forest"
},
{
"GTIN": "5712973396596",
"size": "36",
"color": "Deep Forest"
},
{
"GTIN": "5712973396602",
"size": "38",
"color": "Deep Forest"
},
{
"GTIN": "5712973396619",
"size": "40",
"color": "Deep Forest"
},
{
"GTIN": "5712973396626",
"size": "42",
"color": "Deep Forest"
},
{
"GTIN": "5712973396633",
"size": "44",
"color": "Deep Forest"
},
{
"GTIN": "5712973396640",
"size": "46",
"color": "Deep Forest"
},
{
"GTIN": "5712973396657",
"size": "48",
"color": "Deep Forest"
}
]