首页 > 解决方案 > JSONata:替换“。” 在多级 JSON 的所有对象键中带有“_”

问题描述

JSONata 新手再次签到。

希望有一个解决方案来取代“。” 在任何对象深度级别的所有键中都带有“_”。上次我给出了一个过于简单的例子,最后得到的答案没有解决多级 JSON,所以我再次提出一个更好的例子。TIA。

鉴于此 JSON(练习者:https ://try.jsonata.org/TXqkO6RLm )

[
  {
    "An.Example": "Dots.are.okay.in.values",
    "Product": {
      "Product.ID.Number": 858383,
      "Product.Name": "Bowler Hat",
      "Unit.Cost": 12
    }
  },
  {
    "Another.Example": "With.dots.in.values",
    "Product": {
      "Manufacturer": {
        "Mail.Address": "123 Main St",
        "Mail.City": "Boulder",
        "Mail.Postal.Code": "80303",
        "Mail.State": "CO",
        "Manufacturer.Email": "sales@umbrellazrus.com",
        "Manufacturer.Name": "Umbrellaz R Us"
      },
      "Product.ID.Number": 65432,
      "Product.Name": "Umbrella",
      "Unit.Cost": 9
    }
  }
]

期望的结果:

[
  {
    "An_Example": "Dots.are.okay.in.values",
    "Product": {
      "Product_ID.Number": 858383,
      "Product_Name": "Bowler Hat",
      "Unit_Cost": 12
    }
  },
  {
    "Another_Example": "With.dots.in.values",
    "Product": {
      "Manufacturer": {
        "Mail_Address": "123 Main St",
        "Mail_City": "Boulder",
        "Mail_Postal.Code": "80303",
        "Mail_State": "CO",
        "Manufacturer_Name": "Umbrellaz R Us" , 
        "Manufacturer_Email": "sales@umbrellazrus.com" 
      },
      "Product_ID_Number": 65432,
      "Product_Name": "Umbrella",
      "Unit_Cost": 9
    }
  }
]

标签: jsonata

解决方案


推荐阅读