node.jsにて小規模なシステムを作成中ですが、サンプル作成のためVBAにてjsonファイルを作るとnodeで読み込めません。
正常に読み込めるjsonファイル、エラーが出るjsonファイルはエディター上は同じように見えますが、コンソールにて以下のエラーが出ます。
console
1undefined:1 2・{"items" :[{"id":"1","pid":"1111"," 3’以下略 4SyntaxError: Unexpected token in JSON at position 0
※ちなみに・・・上記をコンソールからコピペしようとしても{items前の「・」がコピペされませんでしたので手入力しました。
この「・」が明らかな問題だと思うのですが、エディターにも表示されないため削除もできません。そもそもVBAの記述が間違っているのかもしれませんが、VBAで[{"id"以下のみを作成し、正常ファイルの"items" :[以下に貼り付けると正常に動きます。
ややこしい問題ですがどなたか教えていただけないでしょうか。
vba
1Sub 表をJSON形式に() 2 arrs = Cells(1, 1).CurrentRegion '1から行数まで、1から列数まで 3 len_row = UBound(arrs, 1) '行数 4 len_col = UBound(arrs, 2) '列数 5 ReDim heads(len_col - 1) '見出し、0から列数-1まで 6 ReDim recs(len_row - 2) 'レコード、0から行数-2まで 7 8 'データの取得とJSONの生成 9 For c = 1 To len_col 10 '1行目の各セルを見出しとして取得。 11 heads(c - 1) = arrs(1, c) 12 Next c 13 For r = 2 To len_row 14 '2行目から最下行まで処理。 15 ReDim temps(len_col - 1) '0から列数-1まで 16 For c = 1 To len_col 17 '各行の各セルを取得し見出しと組み合わせる。 18 temps(c - 1) = Chr(34) & heads(c - 1) & Chr(34) & ":" & Chr(34) & arrs(r, c) & Chr(34) 19 Next c 20 recs(r - 2) = "{" & Join(temps, ",") & "}" 21 Next r 22 json = "{""items"" :" & "[" & Join(recs, ",") & "]" & "}" 23 24 'ファイルの出力 25 fnsave = Application.GetSaveAsFilename("output.json", "JSON(*.json),*.json") 26 If fnsave = False Then Exit Sub 27 With CreateObject("ADODB.Stream") 28 .Type = 2 29 .Charset = "utf-8" 30 .Open 31 .WriteText json, 1 32 .SaveToFile fnsave, 2 33 .Close 34 End With 35 End Sub
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/22 02:16