繁体   English   中英

如何使用mulesoft dataweave将分组和字符串转换为数组的json

[英]how to use mulesoft dataweave to transform to json with grouping and string to array

我有一个数据库调用,提供了如下所述的有效负载。 如何使用dataweave将有效负载以示例表下方提供的格式转换为json?

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|    company    |status|    license_id    |acct status|   last_inv_date   |  acctnum |      owner      | entlmt |            roles          |subscribed|attr_type|        attr_key       |attr_value|
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| company name 1|Active|02iq0000000xlBBAAY|   Active  |2016-02-25 22:50:04|A100001135|myemail@email.com|Standard|Admin;wcl_admin;wcl_support|     1    |  cloud  |cloud_num_247_t_streams|     1    |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| company name 1|Active|02iq0000000xlBBAAY|   Active  |2016-02-25 22:50:04|A100001135|myemail@email.com|Standard|Admin;wcl_admin;wcl_support|     1    |  cloud  |      api_access       |     1    |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| company name 1|Active|02iq0000000xlBBAAY|   Active  |2016-02-25 22:50:04|A100001135|myemail@email.com|Standard|Admin;wcl_admin;wcl_support|     1    |  cloud  |cloud_num_247_p_streams|     1    |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| company name 2|Active|02iq0000000xlBBBBZ|   Active  |2016-02-25 22:50:04|A100001166|myblah1@email.com|Standard|           Admin           |     1    |  cloud  |cloud_num_247_p_streams|     0    |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| company name 2|Active|02iq0000000xlBBBBZ|   Active  |2016-02-25 22:50:04|A100001166|myblah1@email.com|Standard|           Admin           |     1    |  cloud  |       api_access      |     1    |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

在json中需要最终输出:

{
  "records": [
    {
      "company": "company name 1",
      "has_active_subscriptions": true,
      "license_status": "Active",
      "license_id": "02iq0000000xlBBAAY",
      "account_status": "Prospect",
      "last_invoice_date": "2016-02-25 22:50:04",
      "cloud_owner_email": "myemail@email.com",
      "role": [
        "Admin",
        "wcl_admin",
        "wcl_support"
      ],
      "account_number": "A100001135",
      "attributes": {
        "cloud": {
          "api_access": 1,
          "cloud_num_247_t_streams": 1,
          "cloud_num_247_p_streams": 1
        }
      },
      "entitlement_plan": "Standard"
    },
    {
      "company": "company name 2",
      "has_active_subscriptions": true,
      "license_status": "Active",
      "license_id": "02iq0000000xlBBBBZ",
      "account_status": "Active",
      "last_invoice_date": "2016-02-25 22:50:04",
      "cloud_owner_email": "myblah@email.com",
      "role": [
        "Admin"
      ],
      "account_number": "A100001166",
      "attributes": {
        "cloud": {
          "cloud_num_247_p_streams": 0,
          "api_access": 1
        }
      },
      "entitlement_plan": "Standard"
    }
  ]
}

假设dataweave组件仅在数据库组件之后,并且查询结果仍在有效负载上:那么有效负载就是CaseInsensitiveHashMap的ArrayList-类似于JSON上的records对象。

所以我会尝试类似:

 %dw 1.0 %output application/json records: payload 

如果您只想将结果集转换为JSON,则不需要DataWeave。 您可以使用ObjectToJson转换器执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM