VBAのJsonConverterを使って
JSONファイルを作成し、下記サイトを参考に
HTTP通信でファイルを送ったのですが
何故か&が含まれているJSONファイルを送信するとバグってしまうのですが
どのように対応を行えばいいでしょうか?
※バグってしまうというのは、正常ではないJSONファイルが生成されてしまうという意味です。
【参考サイト】
https://github.com/VBA-tools/VBA-JSON
https://doruby.jp/users/ookouchi/entries/201708-EXCEL-VBA-JSON-API-MSXML2-XMLHTTP
VBA
1Public Sub test() 2 3 4 Dim JsonObject As Object 5 Set JsonObject = New Dictionary 6 7 JsonObject.Add "id", 1 8 JsonObject.Add "name", "John Smith" 9 JsonObject.Add "friend_ids", New Collection 10 JsonObject("friend_ids").Add "1&&0" 11 12 JsonObject.Add "shipTo", New Dictionary 13 JsonObject("shipTo").Add "name", "test&.test" 14 JsonObject("shipTo").Add "address", "1-2-3&A" 15 16 17 ' イミディエイトウィンドウで確認(デバック用) 18 19 Dim objHTTP As Object 20Set objHTTP = CreateObject("msxml2.xmlhttp") 21objHTTP.Open "POST", "http://***/test.php", False 22objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 23objHTTP.send JsonConverter.ConvertToJson(JsonObject) 24strRes = objHTTP.ResponseText 25MsgBox (strRes) 26' レスポンスコード(正常) 27If objHTTP.Status = 200 Then 28 MsgBox "正常に終了しました" 29End If 30 31End Sub
php
1print_r($_POST);
下記、出力結果を記載いたします。
①VBAでデータ生成時のデータ
VBA
1{ 2 "id": 1, 3 "name": "John Smith", 4 "friend_ids": [ 5 "1&&0" 6 ], 7 "shipTo": { 8 "name": "test&.test", 9 "address": "1-2-3&A" 10 } 11}
②phpでprint_rで取得時の形式
php
1Array 2( 3 [{"id":1,"name":"John_Smith","friend_ids":_"1] => 4 [0"],"shipTo":{"name":"test] => 5 [_test","address":"1-2-3] => 6 [A"}}] => 7)
データ生成時までは問題ないと思っていたのですが、
何か対策等あるのでしょうか。
お手数をおかけしますが、よろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/21 08:25
2019/01/21 09:06