我目前正在尝试使用此处找到的VBA模块add in解析JSON 。我目前将JSON文件存储为本地文本文件,因此我将其调用到VBA中,进行必要的更改,然后将其发送回新文件。由于我无法弄清楚的原因,该代码似乎在开头和结尾添加引号(因为它是字符串),并且还在每个键/值对中添加引号。后者是我想要做的事的停止(这些都是大的Json文件)。我目前拥有的解决方案是将它们打印到单元格中,然后将JSON复制/粘贴到文本文件中,即使那样也不是很简单。有没有比我正在尝试的解决方案更好的解决方案?
Dim Json As Object
FilePath = "Path to file.txt"
Open FilePath For Input As #1
Data = Input$(LOF(1), #1)
Close #1
Set Json = JsonConverter.ParseJson(Data)
Json("key 1")("key 2") = "value"
outputfile ="path to file.txt"
Write #1, JsonConverter.ConvertToJson(Json, Whitespace:=2)
Close #1
Open outputfile For Input As #1
NewData = Input$(LOF(1), #1)
Close #1
NewData = Replace(NewData, """", "!")
NewData = Replace(NewData, "!!", """")
NewData = Replace(NewData, "!", "")
m1.Cells(x,y) = NewData
因此,如果您查看输入JSON与输出文件JSON,则密钥已成功编辑,但是看起来像这样
input file
{"key1":{"key2":"Blank"}}
outputfile
"{""key1"":{""key2"":""value""}}"
文件很大,要在此处发布,因此从键和值中删除多余的引号,外面就很麻烦,而excel的replace函数似乎不适合此操作。
就像我说的那样,以NewData开头的3行代码将对此进行处理,然后在其后的第4行将整个内容粘贴到单个单元格中,然后将其粘贴回文本文件中。这是我想出的两种无效引号都删除的最有效方法。
与“打印”功能不同,“写入”功能在将项目和字符串写到文件时在字符串之间加上逗号。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句