javascript - 如何从在 jelastic jps 清单上运行的脚本中操作 json 文件?
问题描述
我在某个 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)
有一个例子。
并且可以通过 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}'
})
推荐阅读
- javascript - 如何将实时音频从浏览器流式传输到 Icecast 服务器
- rest - Reuse OpenAPI/Swagger definition with different validation rules?
- php - 在 Symfony 3.4 上禁用 NelmioApiDocs 沙箱
- windows - Resizing another threads window with MFC above screen size
- google-maps - NullPointerException: thrown in OnMapReady method
- sql - Update Table Based on concurrent join
- git - Jenkins: Slave doesn't use provided SSH key from project configuration to authenticate for Git
- docker - docker 和 docker-in-docker 在哪个路径中运行其容器?
- json - 使用 Spark 使用对象数组编写 JSON 输出
- c# - UXTheme dll 符号和 AccentColor