在从JSON源导入媒体时将段落生成实体引用字段

在从JSON源导入媒体时将段落生成实体引用字段,json,drupal-8,migrate,Json,Drupal 8,Migrate,我使用json源将数据迁移到Drupal8站点中的各种实体中 实体:文件、媒体、分类术语 下面是Json的一个示例 { "data": { "pictures": [ { "id": "69218", "url": "https://telescopius.com/pictur

我使用json源将数据迁移到Drupal8站点中的各种实体中

实体:文件、媒体、分类术语

下面是Json的一个示例

{
    "data": {
        "pictures": [
            {
                "id": "69218",
                "url": "https://telescopius.com/pictures/view/69218/deep_sky/pleiades/M/45/bright-nebula/by-marc_mantha",
                "created_timestamp": 1601316101,
                "picture_type": "deep_sky",
                "objects_in_picture": "Pleiades, NGC 1432, NGC 1435, IC 353, IC 349, vdB 20, vdB 23, Ced 19e, Ced 19c, Ced 19h, Ced 19o, Ced 19p, Pleiades",
                "acquisition_date": "2020-09-27",
                "sensor_temperature": "-10.0 ºC",
                "bortle_scale_sky_darkness": "8 - City sky",
                "bortle_scale_sky_darkness_ratio": "2/9",
                "seeing": "1/5",
                "transparency": "1/5",
                "description": "Seeing was awful, but still was able to pull out some details. ",
                "subs": [
                    {
                        "type": "lights",
                        "count": "26",
                        "duration": "120 s",
                        "filter": "Light pollution"
                    },
                    {
                        "type": "darks",
                        "count": "22",
                        "duration": "120 s",
                        "filter": null
                    },
                    {
                        "type": "flats",
                        "count": "30",
                        "duration": "2.3 s",
                        "filter": null
                    },
                    {
                        "type": "dark flats",
                        "count": "30",
                        "duration": "2.3 s",
                        "filter": null
                    }
                ],
                 
                },
                "revisions": [
                    {
                        "number": "0",
                        "description": "",
                        "is_final": true,
                        "images": [

                            {
                                "name": "original",
                                "width": "3513",
                                "height": "2438",
                                "url": "https://storage.googleapis.com/dso-browser.com/astrophotography/picture-2f5830f58e16f49d2bd9488ef8d79d00-original.jpg"
                            }

                        ]
                    }
                ]
            }
        }
    }
我正在使用JsonPath via来解析数据

对于每个图片对象:

  • 导入图像(作为文件)
  • 然后将该文件导入自定义媒体包(astrophoto_图像)
  • 创建一个节点(bundle:portfolio)
  • 我的媒体包(astrophoto_image)有多个字段,包括一个实体引用字段,指向一个段落(机器名:subs,多值),我想在其中加载图片subs对象。这是我正在努力解决的问题。最好的办法是什么?我面临的挑战是段落是en实体,但我没有创建迁移映射的唯一键。这里有不同的场景,哪一个是最好的

    1-为段落创建迁移,并在媒体导入之前运行此迁移。Json源代码应该是$…pictures[*][id,subs],但是我仍然有一个问题,我需要subs数组索引来为映射生成唯一的键(其中id是id,sub[curren index])

    2-使用实体生成?分类术语很容易,但我很难将subs属性映射到段落字段值

    3-创建存根,同样的挑战是为段落生成id

    提前谢谢你的帮助