我有以下
json
文件并想将其转换为 AHK 对象:
{
"folders": [
{
"path": "."
}
],
"settings": {
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/Thumbs.db": true,
"**.lnk":true,
"*.code-workspace" :true,
"**.vscode/":true,
"**.url":true
},
"terminal.integrated.fontSize": 12,
}
}
我只关心键
terminal.integrated.fontSize
及其值12
。我想增加/减少它并通过覆盖文件将其保存回来。
我已经尝试了以下方法,我被困在获取值
terminal.integrated.fontSize
,调试器显示Object {["files.exclude"]: Object, ["terminal.integrated.fontSize"]: 12}
但OutPutDebug
只打印任何内容:
path := "C:\temp\Rest APIs.code-workspace"
Obj := Json.Load(FileOpen(Path,"r").Read())
OutputDebug, % Obj.settings
OutputDebug, % Obj.settings[1]
OutputDebug, % Obj.settings[2]
如果你想知道我在做什么,我在这里解释一下,如何使用热键增加“Settings.json”中设置的值?
任何帮助将不胜感激!
首先,你的JSON代码不正确。 我通常使用 THIS 网站在处理 JSON 输入之前对其进行验证。 在您的 JSON 代码中,“12”后面有一个不应该出现的逗号。
澄清这一点后,这里有一些方法可以使用您正在使用的相同库来实现您想要的目标。
j =
(
{
"folders": [{
"path": "."
}],
"settings": {
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/Thumbs.db": true,
"**.lnk": true,
"*.code-workspace": true,
"**.vscode/": true,
"**.url": true
},
"terminal.integrated.fontSize": 12
}
}
)
obj := json.load(j)
OutputDebug, % obj.settings["terminal.integrated.fontSize"]
obj.settings["terminal.integrated.fontSize"] := 15
OutputDebug, % obj.settings["terminal.integrated.fontSize"]
obj.settings["terminal.integrated.fontSize"]++
OutputDebug, % obj.settings["terminal.integrated.fontSize"]
new_json := json.dump(obj)
Msgbox % new_json
ExitApp, 0