下記で示しているコードは 掲載用に 簡易にしたヴァージョンですが、表題のとおり JSONで取得しているデータが
数値項目の値までも、ダブルクォートでくくられてしまっています。(下記はJSONデータの例:標準作業時間・更新カウンタは数値項目)
尚、これらデータを取得するためのSQL文は POSTでサーバに入ってくる作りになっています。
JSON
1[ 2 { 3 "品目コード": "123456", 4 "品名": "へのへのもへじ", 5 "標準作業時間": "0", 6 "標準収率": null, 7 "更新カウンタ": "9", 8 "更新日時": "19-04-01", 9 "更新担当者コード": "XXXXXXXXXX" 10 }, 11 { 12 "品目コード": "223456", 13 "品名": "こんやがやまだ", 14 "標準作業時間": "0", 15 "標準収率": null, 16 "更新カウンタ": "9", 17 "更新日時": "19-05-01", 18 "更新担当者コード": "XXXXXXXXXX" 19 }, 20 { 21 "品目コード": "323456", 22 "品名": "おしりふくかいちょう", 23 "標準作業時間": "0", 24 "標準収率": null, 25 "更新カウンタ": "9", 26 "更新日時": "19-06-01", 27 "更新担当者コード": "XXXXXXXXXX" 28 }, 29 { 30 "品目コード": "423456", 31 "品名": "ありませんもんがっこう", 32 "標準作業時間": "0", 33 "標準収率": null, 34 "更新カウンタ": "9", 35 "更新日時": "19-07-01", 36 "更新担当者コード": "XXXXXXXXXX" 37 } 38]
数値項目の値については JSON上 ダブルクォートでくくらない形式には できないでしょうか?
この例に示しているように、SQL文が 可変してしまう=数値項目が どの列にいるか分からない、という状況です。
PHP
1<?php include "php_classes/classes.php"; #SQL Server接続のためのクラス ms0connect について記載されてる 2 3## パラメータの取得 4if (!isset($_POST["DBID"]) || !isset($_POST["SQL"])) { 5 http_response_code(500); //HTTPレスポンスコード(500サーバーエラー) 6 echo "no parameter"; 7 exit(); 8} 9 10 11# SQL文 12$sql = $_POST["SQL"]; 13 14 15try { 16 //DBへの接続 【php_classes/classes.phpに接続先は書いてあります】 17 $db = new ms0connect(); 18 $conn = $db->dbconnect(); 19 $stmt = $conn->query($sql); 20 $results = $stmt->fetchAll(PDO::FETCH_ASSOC); 21 $conn = null; 22} catch (Exception $e) { 23 error_log("### SQL Serverデータ取得失敗 ⇒".$sql."###".$e->getMessage(),0); 24 http_response_code(569); //HTTPレスポンスコード(500サーバーエラー) 25 die("Error:" . $e->getMessage()); 26} 27 28$json = $results; //JSONに登録 29 30http_response_code(200); //HTTPレスポンスコード(200正常終了) 31header('Content-Type: application/json; charset=UTF-8'); 32header("X-Content-Type-Options: nosniff"); 33 34echo json_encode($json, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); //エンコードして送信 35exit(); 36 37 38 39function e(string $str, string $charset = 'UTF-8'): string { 40 return htmlspecialchars($str, ENT_QUOTES | ENT_HTML5, $charset); 41} 42?>
よろしくお願いします! 無理か否かさえ分からないので、ご見解を頂けたら幸いです。
2020/06/01 18:42追記
data
1array ( 20 => array ( '品目コード' => '123456', '品名' => 'へのへのもへじ', '標準作業時間' => '0', '標準収率' => NULL, '更新カウンタ' => '7', '更新日時' => '18-04-02', '更新担当者コード' => 'XXXXXXXXXX', ), 31 => array ( '品目コード' => '223456', '品名' => 'こんやがやまだ', '標準作業時間' => '0', '標準収率' => NULL, '更新カウンタ' => '4', '更新日時' => '09-04-01', '更新担当者コード' => 'XXXXXXXXXX', ), 42 => array ( '品目コード' => '323456', '品名' => 'おしりふくかいちょう', '標準作業時間' => '0', '標準収率' => NULL, '更新カウンタ' => '7', '更新日時' => '18-04-02', '更新担当者コード' => 'XXXXXXXXXX', ), 53 => array ( '品目コード' => '423456', '品名' => 'ありませんもんがっこう', '標準作業時間' => '0', '標準収率' => NULL, '更新カウンタ' => '7', '更新日時' => '18-04-02', '更新担当者コード' => 'XXXXXXXXXX', ), ) 6[ { "品目コード": "123456", "品名": "へのへのもへじ", "標準作業時間": "0", "標準収率": null, "更新カウンタ": "7", "更新日時": "18-04-02", "更新担当者コード": "XXXXXXXXXX" }, 7{ "品目コード": "223456", "品名": "こんやがやまだ", "標準作業時間": "0", "標準収率": null, "更新カウンタ": "4", "更新日時": "09-04-01", "更新担当者コード": "XXXXXXXXXX" }, 8{ "品目コード": "323456", "品名": "おしりふくかいちょう", "標準作業時間": "0", "標準収率": null, "更新カウンタ": "7", "更新日時": "18-04-02", "更新担当者コード": "XXXXXXXXXX" }, 9{ "品目コード": "423456", "品名": "ありませんもんがっこう", "標準作業時間": "0", "標準収率": null, "更新カウンタ": "7", "更新日時": "18-04-02", "更新担当者コード": "XXXXXXXXXX" } ]
回答3件
あなたの回答
tips
プレビュー