ホームページ >バックエンド開発 >PHPチュートリアル >JSON データを SESSION に保存する際の問題
クライアントから渡されるJSONデータ:
[ { "category_id": 0, "category_products": [ [ { "para_name": "品牌", "para_val": "海飞丝" }, { "para_name": "生产日期", "para_val": "2015-08-11" } ], [ { "para_name": "品牌", "para_val": "新丝路" }, { "para_name": "生产日期", "para_val": "2015-08-11" }, { "para_name": "适用发质", "para_val": "干枯、毛躁、油性头发" } ] ] }, { "category_id": 1, "category_products": [ [ { "para_name": "品牌", "para_val": "潘婷" }, { "para_name": "生产日期", "para_val": "2015-06-11" } ] ] }]
a: 2: { i: 0;O: 8: "stdClass": 2: { s: 11: "category_id";i: 0;s: 17: "category_products";a: 2: { i: 0;a: 2: { i: 0;O: 8: "stdClass": 2: { s: 9: "para_name";s: 6: "品牌";s: 8: "para_val";s: 9: "海飞丝"; }i: 1;O: 8: "stdClass": 2: { s: 9: "para_name";s: 12: "生产日期";s: 8: "para_val";s: 10: "2015-08-11"; } }i: 1;a: 3: { i: 0;O: 8: "stdClass": 2: { s: 9: "para_name";s: 6: "品牌";s: 8: "para_val";s: 9: "新丝路"; }i: 1;O: 8: "stdClass": 2: { s: 9: "para_name";s: 12: "生产日期";s: 8: "para_val";s: 10: "2015-08-11"; }i: 2;O: 8: "stdClass": 2: { s: 9: "para_name";s: 12: "适用发质";s: 8: "para_val";s: 30: "干枯、毛躁、油性头发"; } } } }i: 1;O: 8: "stdClass": 2: { s: 11: "category_id";i: 1;s: 17: "category_products";a: 1: { i: 0;a: 2: { i: 0;O: 8: "stdClass": 2: { s: 9: "para_name";s: 6: "品牌";s: 8: "para_val";s: 6: "潘婷"; }i: 1;O: 8: "stdClass": 2: { s: 9: "para_name";s: 12: "生产日期";s: 8: "para_val";s: 10: "2015-06-11"; } } } }}
2 番目のデータはシリアル化されています
あなたの最初の 2 番目のデータはシリアル化
アプリケーションのシナリオがわかりません
最初のデータは JSON 文字列であり、2 番目のデータにシリアル化されません
console.log の出力は [object object] になりますが、これは正しいです
なるほどstdclass があるということは、返された json をデコードしたことを意味します。 json_decode($json,1); true パラメーターを追加します。 シーケンスの準備ができました
アプリケーションのシナリオがわかりません
console.log の出力は [object object] になりますが、これは正しいです
サーバーから元の JSON 文字列を取得した後、JSON 文字列を配列に変換しますjson_decode を通じてオブジェクトを取得し、配列オブジェクトをシリアル化して $_SESSION 変数に割り当てます。その理由は、私のデータが 2 レベルであり、数値が固定されていないためです。 Baidu Experience に似たバックグラウンド入力インターフェイス。そのため、最終的にコンテンツを公開する前に、データを一時的に SESSION に保存し、追加、削除、変更、クエリをデータベースを経由する必要はありません (私はこの方法を試しました)。データの関連付けは 2 層構造であるため、データベースを介して追加、削除、変更、クエリを実行する必要はありません。
私のアプローチが適切かどうかわかりません。より良い解決策はありますか?
アプリケーションのシナリオがわかりません
最初のデータは JSON 文字列であり、2 番目のデータにはシリアル化されません
コンソール。ログが [オブジェクト オブジェクト] になるのは正しいです
フロントエンド インターフェイス操作のスクリーンショット
良いですね!当然のことながら、シリアル化は不要であり、余分です。ありがとうございます!