如何从 jelastic jps 清单上的脚本 运行 操作 json 文件?

How do I manipulate a json file from a script run on a jelastic jps manifest?

我在某些 URL 处有一个 JSON 文件可用。在我的 Jelastic 清单中,我想阅读它,修改它的内容,并将修改后的内容输出到我正在安装/更新的环境中的 json:

jpsVersion: 1.3
jpsType: update
application:
  id: json
  name: JSON Test
  version: 0.0

  onInstall:
  - script: |
      const Transport = com.hivext.api.core.utils.Transport
      const body = new Transport().get('url-to-my-jsonfile.json')
      // 1. here I want to edit the json data, maybe change some values
      // 2. here I want to store the json data in a json file

在上面的清单中,我首先从某个远程端点下载 json 文件(很可能是某个 git 存储库中的原始文件)。然后,我想将 json 加载到 javascript 对象中,以便操作该对象。例如,我想更改其中一个键的值。最后,我想在我的环境中的某个地方输出修改后的 json 对象,例如在 /data/my-output.json 文件中。

我该怎么做?我尝试了一些东西,但似乎没有任何效果。例如,似乎 JSON.parse 在此类脚本中不可用。我有哪些选择?

编辑

目前,我正在做的是使用我编写的 python 脚本来操作这些数据。我想知道 Jelastic API 或 javascript 脚本中是否有更简单的方法。

您可以使用预定义函数 toNative 将 json 文本转换为 java 对象:

body = toNative(body)

an example

并且可以通过 API jelastic.environment.file.Write

将数据保存为容器中的文件
var resp = jelastic.environment.file.Write({
    envName: 'myenv',
    session: session,
    nodeid: 12345,
    path: '/home/jelastic/myfile.json',
    body: '{a:1}'
})