質問編集履歴
2
ソースコードの改変
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,11 +12,15 @@
|
|
12
12
|
|
13
13
|
```
|
14
14
|
|
15
|
-
|
15
|
+
<?php
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
+
$data = array("data" => array('ああああ"あ', 'いいい'));
|
20
|
+
|
21
|
+
|
22
|
+
|
19
|
-
$json = json_data($data);
|
23
|
+
$json = json::json_data($data);
|
20
24
|
|
21
25
|
// var_dump($json)とすると、ダブルクォートがエスケープされていない。関数内ではエスケープされているが
|
22
26
|
|
@@ -26,31 +30,43 @@
|
|
26
30
|
|
27
31
|
|
28
32
|
|
29
|
-
|
33
|
+
var_dump($decode);
|
30
|
-
|
31
|
-
$from = array("\"","\'","\n",",");
|
32
|
-
|
33
|
-
$to = array("\\"", "\\'", "\n", "\,");
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
-
|
37
|
+
class json
|
38
38
|
|
39
|
-
|
39
|
+
{
|
40
40
|
|
41
|
-
|
41
|
+
public static function json_data($s){
|
42
42
|
|
43
|
-
fo
|
43
|
+
$from = array("\"","\'","\n",",");
|
44
44
|
|
45
|
-
|
45
|
+
$to = array("\\"", "\\'", "\n", "\,");
|
46
46
|
|
47
|
-
return '['.implode(',', $a).']';
|
48
47
|
|
49
|
-
} else {
|
50
48
|
|
51
|
-
|
49
|
+
$a = array();
|
52
50
|
|
51
|
+
if (sizeof($s) == 0) {
|
52
|
+
|
53
|
+
return '[]';
|
54
|
+
|
55
|
+
} elseif (isset($s[0])) {
|
56
|
+
|
57
|
+
foreach($s as $p) array_push($a, (is_string($p)? '"'.str_replace($from, $to, $p).'"': self::json_data($p)));
|
58
|
+
|
59
|
+
// この時点で、ダブルクォーとはエスケープされることはデバックで確認済み
|
60
|
+
|
61
|
+
return '['.implode(',', $a).']';
|
62
|
+
|
63
|
+
} else {
|
64
|
+
|
65
|
+
foreach($s as $p => $q) array_push($a, "\"$p\":".self::json_data($q));
|
66
|
+
|
53
|
-
return '{'.implode(',', $a).'}';
|
67
|
+
return '{'.implode(',', $a).'}';
|
68
|
+
|
69
|
+
}
|
54
70
|
|
55
71
|
}
|
56
72
|
|
1
json_data関数の引数の変数名及び構文チェックのサイトを追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
|
28
28
|
|
29
|
-
function json_data($
|
29
|
+
function json_data($s);
|
30
30
|
|
31
31
|
$from = array("\"","\'","\n",",");
|
32
32
|
|
@@ -75,3 +75,5 @@
|
|
75
75
|
なお、ブラウザに出力されたjsonデータを下記サイトにて構文チェックをしたところ、
|
76
76
|
|
77
77
|
やはりダブルクォートが原因でした。
|
78
|
+
|
79
|
+
https://lab.syncer.jp/Tool/JSON-Viewer/
|