標題のとおり、明らかに数値項目である 金額・単価までも 「"」でくくられていて困っています。
こちらのページに json_encodeで 指定可能なオプションが定義されていますが
JSON_NUMERIC_CHECKを指定すると、数値項目から「"」が除去されるのですが、前「0」が付いているテーブルのKeyになっているような文字列までも、数値項目と判断され、ZEROサプレスされかつ「"」が除去されてしまう事態を招いています。
かたやJSON_BIGINT_AS_STRINGを指定すると、先に言及の前「0」が付いている項目が文字列と認識されるも
金額・単価といった明らかな数値項目までも 「"」でくくられてしまいます。
前「0」の項目は文字列の項目と判断した上、数値のみの項目は 数値項目と判断するような 指定はできないでしょうか?
16:40追記
JSON
1[ 2 { 3 "受注NO": "0001791904", 4 "エントリNO": "0001610538", 5 "運賃": "0", 6 "税抜合計金額": "0" 7 }, 8 { 9 "受注NO": "0001791916", 10 "エントリNO": "0001610550", 11 "運賃": "0", 12 "税抜合計金額": "0" 13 } 14]
PHP
1header('Content-Type: application/json; charset=UTF-8'); 2header("X-Content-Type-Options: nosniff"); 3echo json_encode($json, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_BIGINT_AS_STRING); 4exit();
回答2件
あなたの回答
tips
プレビュー