gpt4 book ai didi

json - 遍历 Vimscript 中的字符串或解析 JSON 文件

转载 作者:行者123 更新时间:2023-12-04 14:46:20 52 4
gpt4 key购买 nike

因此,我正在创建一个 vim 脚本,该脚本需要将 JSON 文件加载并解析到本地对象图中。我进行了搜索,但找不到任何处理 JSON 文件的 native 方式,并且我不想向脚本添加任何依赖项。所以我编写了自己的函数来解析 JSON 字符串(从文件中获取),但它真的很慢。目前,我像这样遍历文件中的每个字符:

let len = strlen(jsonString) - 1
let i = 0
while i < len
let c = strpart(jsonString, i, 1)
let i += 1
" A lot of code to process file....
" Note: I've tried short cutting the process by searching for enclosing double-quotes when I come across the initial double quotes (also taking into account escaping '\' character. It doesn't help
endwhile

我也试过这个方法:
for c in split(jsonString, '\zs')
" Do a lot of parsing ....
endfor

作为引用,大约 29,000 个字符的文件需要大约 4 秒的时间来处理,这是 Not Acceptable 。

有没有更好的方法来遍历 vim 脚本中的字符串?

或者更好的是,我是否错过了解析 JSON 的 native 函数?

更新:

我要求不依赖,因为我:
  • 不想和他们打交道
  • 真正想要一些想法,以便在没有其他人的工作的情况下做到这一点。
  • 有时我只是喜欢手动做事,即使问题已经解决了。

  • 我根本不反对插件或依赖项,只是我很好奇。因此问题。

    我最终创建了自己的函数来解析 JSON 文件。我正在创建一个可以解析 package.json 的脚本与 node.js 模块关联的文件。因此,只要我检索到所需的信息,我就可以依靠相当一致的格式并退出处理。这通常会删除文件的大块,因为大多数开发人员将文件的最大块,即他们的“自述文件”部分放在最后。因为 package.json文件是严格定义的,我留下的过程有些脆弱。它假定一个根字典 { }并积极寻找某些条目。你可以在这里找到脚本: https://github.com/ahayman/vim-nodejs-complete/blob/master/after/ftplugin/javascript.vim#L33 .

    当然,这并不能回答我自己的问题。这只是我独特问题的解决方案。我会等几天等待新的答案,然后在赏金结束前挑选出最好的答案(我已经在手机上设置了闹钟)。

    最佳答案

    具有最少依赖性的最简单解决方案就是使用 json_decode vim 函数。

    let dict = json_decode(jsonString)

    关于json - 遍历 Vimscript 中的字符串或解析 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17751186/

    52 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com