从给定的json中,我希望获得所需的输出,如何使用dataweave来实现呢? [英] From the given json, I want to get the desired output, How to do it using dataweave?

查看:20
本文介绍了从给定的json中,我希望获得所需的输出,如何使用dataweave来实现呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

输入

{
    "editable": true,
    "sections": [
            {
                "title": "Identification",
                "Content": [
                    {
                        "name": "Classification",
                        "apiname": "SP_Classification__c",
                        "text": {
                            "Name": "EQ-10186735",
                            "SP_Altitude__c": "A001",
                            "SP_Batch_Number__c": "B001",
                            "SP_Classification__c": "Products",
                            "SP_Current_Equipment_Partner__c": "E001",
                            "SP_Current_Equipment_Partner__r": "E002",
                            "SP_Delivery_Date__c": "2016-09-02",
                            "SP_Delivery_Note__c": "82849654",
                            "SP_End_of_Commissioning__c": "End001",
                            "SP_Product_Number__c": "1MV4567-6BJ60-4BD0-Z"
                        },
                        "url": "",
                        "info": ""
                    },
                    {
                        "name": "Product Number",
                        "apiname": "SP_Product_Number__c",
                        "text": {
                            "Name": "EQ-10186735",
                            "SP_Altitude__c": "A001",
                            "SP_Batch_Number__c": "B001",
                            "SP_Classification__c": "Products",
                            "SP_Current_Equipment_Partner__c": "E001",
                            "SP_Current_Equipment_Partner__r": "E002",
                            "SP_Delivery_Date__c": "2016-09-02",
                            "SP_Delivery_Note__c": "82849654",
                            "SP_End_of_Commissioning__c": "End001",
                            "SP_Product_Number__c": "1MV4567-6BJ60-4BD0-Z"
                        },
                        "url": "",
                        "info": ""
                    },
                    {
                        "name": "Current Equipment Partner",
                        "apiname": "SP_Current_Equipment_Partner__c",
                        "text": {
                            "Name": "EQ-10186735",
                            "SP_Altitude__c": "A001",
                            "SP_Batch_Number__c": "B001",
                            "SP_Classification__c": "Products",
                            "SP_Current_Equipment_Partner__c": "E001",
                            "SP_Current_Equipment_Partner__r": "E002",
                            "SP_Delivery_Date__c": "2016-09-02",
                            "SP_Delivery_Note__c": "82849654",
                            "SP_End_of_Commissioning__c": "End001",
                            "SP_Product_Number__c": "1MV4567-6BJ60-4BD0-Z"
                        },
                        "url": "",
                        "info": ""
                    },
                    {
                        "name": "End of Commissioning",
                        "apiname": "SP_End_of_Commissioning__c",
                        "text": {
                            "Name": "EQ-10186735",
                            "SP_Altitude__c": "A001",
                            "SP_Batch_Number__c": "B001",
                            "SP_Classification__c": "Products",
                            "SP_Current_Equipment_Partner__c": "E001",
                            "SP_Current_Equipment_Partner__r": "E002",
                            "SP_Delivery_Date__c": "2016-09-02",
                            "SP_Delivery_Note__c": "82849654",
                            "SP_End_of_Commissioning__c": "End001",
                            "SP_Product_Number__c": "1MV4567-6BJ60-4BD0-Z"
                        },
                        "url": "",
                        "info": ""
                    }
                ]
            },
            {
                "title": "Position And Contact",
                "Content": [
                    {
                        "name": "Batch Number",
                        "apiname": "SP_Batch_Number__c",
                        "text": {
                            "Name": "EQ-10186735",
                            "SP_Altitude__c": "A001",
                            "SP_Batch_Number__c": "B001",
                            "SP_Classification__c": "Products",
                            "SP_Current_Equipment_Partner__c": "E001",
                            "SP_Current_Equipment_Partner__r": "E002",
                            "SP_Delivery_Date__c": "2016-09-02",
                            "SP_Delivery_Note__c": "82849654",
                            "SP_End_of_Commissioning__c": "End001",
                            "SP_Product_Number__c": "1MV4567-6BJ60-4BD0-Z"
                        },
                        "url": "",
                        "info": ""
                    },
                    {
                        "name": "Altitude",
                        "apiname": "SP_Altitude__c",
                        "text": {
                            "Name": "EQ-10186735",
                            "SP_Altitude__c": "A001",
                            "SP_Batch_Number__c": "B001",
                            "SP_Classification__c": "Products",
                            "SP_Current_Equipment_Partner__c": "E001",
                            "SP_Current_Equipment_Partner__r": "E002",
                            "SP_Delivery_Date__c": "2016-09-02",
                            "SP_Delivery_Note__c": "82849654",
                            "SP_End_of_Commissioning__c": "End001",
                            "SP_Product_Number__c": "1MV4567-6BJ60-4BD0-Z"
                        },
                        "url": "",
                        "info": ""
                    }
                ]
            }
    ]
}

输出

{
    "editable": true,
    "sections": [
            {
                "title": "Identification",
                "Content": [
                    {
                        "name": "Classification",
                        "apiname": "SP_Classification__c",
                        "text": "Products"
                        "url": "",
                        "info": ""
                    },
                    {
                        "name": "Product Number",
                        "apiname": "SP_Product_Number__c",
                        "text": "1MV4567-6BJ60-4BD0-Z",
                        "url": "",
                        "info": ""
                    },
                    {
                        "name": "Current Equipment Partner",
                        "apiname": "SP_Current_Equipment_Partner__c",
                        "text": "E001,
                        "url": "",
                        "info": ""
                    },
                    {
                        "name": "End of Commissioning",
                        "apiname": "SP_End_of_Commissioning__c",
                        "text": "End001",
                        "url": "",
                        "info": ""
                    }
                ]
            },
            {
                "title": "Position And Contact",
                "Content": [
                    {
                        "name": "Batch Number",
                        "apiname": "SP_Batch_Number__c",
                        "text": "B001,
                        "url": "",
                        "info": ""
                    },
                    {
                        "name": "Altitude",
                        "apiname": "SP_Altitude__c",
                        "text": "A001",
                        "url": "",
                        "info": ""
                    }
                ]
            }

推荐答案

您似乎需要原样映射除Content元素内的text属性之外的每个属性。可以使用filterObject()对其进行过滤

%dw 2.0
output application/json
---
{
    editable: payload.editable,
    sections: payload.sections map 
        {
            title: $.title,
            Content: $.Content map 
                ($ mapObject ((value, key, index) -> 
                        (key):  if (key as String != "text") value 
                             else value[$.apiname]
                    )
                )
        }
}

这篇关于从给定的json中,我希望获得所需的输出,如何使用dataweave来实现呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆