質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

5回答

518閲覧

JSONでデータが化け正しく取れない

shirokuma3109

総合スコア6

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2023/02/16 23:41

実現したいこと

データベースのプライマリーキーに利用している項目が「22E01」正しく取れない。

SQL SERVERのデータと同様の値をとってきたい。
phpで配列として取得すると正しく取れている。

前提

Windows 2019 Server ∔II10 + PHP8.1 + Laravel9

発生している問題・エラーメッセージ

Laravel9 でテーブルからJSONを取得してテーブルに表示する。氏名や生年月日などのデータは正しく取れています。
SQL server上のキー項目⇒AJAXでとってきたJSON?
22E01⇒220
22E02⇒2200
22E03⇒22000......
22E10⇒220000000000
22E017⇒2200000000000000000
22E18⇒9223372036854776000 以降同じ数字、
で3桁目のアルファベットが22H01や22Xになると
頭二けたの22しかとってこない

エラーメッセージは表示されていない

該当のソースコード

Laravel9 PHP8.1

1ソースコード

public function readTable()
{
$list = \App\Models\GakuseiTb::all();
return response()->json(['lists' => $list]);
}

試したこと

$data=DB::connection('sqlsrv2')->select($SQLSTR);
DBからとってきた値をbladeで

@foreach($gakusei as $doc)

<tr> <!--<form action="header" method="get"> !-->
<td>{{$doc->no}}</td> <td>{{$doc->nname}}</td> <td>{{$doc->ename}}</td> ・・・・・とすると変換されずに「22E01~」とってこれていることは確認 @endforeach

補足情報(FW/ツールのバージョンなど)

PHP Version 8.1.15
json support enabled
sqlsrv support enabled ExtensionVer 5.10.1+15814

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

PHP側はjsonに変換時に自動で変換はされないのでjs側の話。

php

1json_encode(['test' => 22E01]) 2//220 3 4json_encode(['test' => '22E01']) 5//22E01

最初に確認するのは「出力されたjson」
これでPHPかJSか問題の切り分け。
自分の書いたコードをいくら見ても意味がない。

投稿2023/02/17 02:42

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

JS

javascript

1const json='[22E03,"22E03"]'; 2console.log(JSON.parse(json));

PHP

PHP

1$json='[22E03,"22E03"]'; 2var_dump(json_decode($json));

「22E03」をクォートで囲めば文字列、囲まなければ数値として判断されます。
「数値e数値字」の表示形式は浮動小数点リテラルの指数表現で、多くの言語が採用していますのでJSONで数値として指定することもできるようです。

つまりは

データが化け正しく取れない

データは化けていませんし、正しく取れているということです

投稿2023/02/17 01:09

編集2023/02/17 01:11
yambejp

総合スコア115275

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

データ型の解釈を間違えているのではないでしょうか。それぞれの文字列を数値として評価すれば、ご提示のような値が取れてしまいます。

投稿2023/02/17 00:26

maisumakun

総合スコア145364

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Laravel9 日本語マニュルを”JSON”で検索してEloquent ORMで解決方法を見つけました

MODELSの当該テーブルでCAST
protected $casts = ['no' =>'string',];
することで解決しました。

投稿2023/02/17 07:35

shirokuma3109

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

Laravel9 日本語マニュルを”JSON”で検索してEloquent ORMで解決方法を見つけました。

MODELSの当該テーブルでCAST
protected $casts = ['no' =>'string',];
することで解決しました。

投稿2023/02/17 07:32

shirokuma3109

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問