我正在使用该库将我的Excel表数据转换为json。当我在控制台或excel单元格值上打印它时,我确实看到了我正在寻找的json格式数据,但是当我将其保存到一些txt文件中时。我看到添加了额外的报价。
Dim myFile As String
myFile = "C:\Users\test\Desktop\data.json"
Open myFile For Output As #1
Write #1, Range("A10").Value ' Or json (containing data)
Close #1
首先,我将单元格从A1转换为F6,将其转换为json对象数组。格式:
[
{"key1": "val1", "key2": "val2", "key3": "val3", "key4": "val4"},
{"key11": "val11", "key12": "val12", "key13": "val13", "key14": "val14"},
{"key21": "val21", "key22": "val22", "key23": "val23", "key24": "val24"}
]
然后将其保存到data.json文件。但是我在文件中得到了。
"[
{""key1"":""val1"",""key2"":""val2"",""key3"":""val3"",""key4"":""val4"",""key5"":""val5""}
{""key21"":""val21"",""key22"":""val22"",""key23"":""val23"",""key24"":""val24"",""key25"":""val25""}
]"
当我在VBA或任意一个excel单元格中将相同的json数据打印到控制台(立即窗口)时,我会看到正确的版本。
我不明白我要去哪里错了?
这些是我正在使用的库,它给出的结果相同:
蒂姆大厅-https://github.com/VBA-tools/VBA-JSON 我还创建了自己的json转换器,但得到的结果相同。
答案 0 :(得分:2)
将写更改为打印
Print #1, Range("A10").Value
答案 1 :(得分:0)
我有一个类似的问题,可以通过执行以下操作解决:
Open myFile For Input As #1
NewData = Input$(LOF(1), #1)
Close #1
NewData = Replace(NewData, """", "!")
NewData = Replace(NewData, "!!", """")
NewData = Replace(NewData, "!", "")
ml.Cells(x,y) = NewData
这可能不是最好的方法,但是我最终得到了我的json以我期望的方式打印,没有附加引号。