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

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

新規登録して質問してみよう
ただいま回答率
85.48%
JSON

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

Q&A

解決済

1回答

4435閲覧

セッションストレージからデータを取得してJSON形式にしたい

退会済みユーザー

退会済みユーザー

総合スコア0

JSON

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

0グッド

1クリップ

投稿2017/05/30 15:24

編集2017/05/30 18:10

こんばんは、セッションストレージからデータを取得してJSON形式にしたいのですが、配列になっている"productid"と"quantity"に複数の値をいれる方法がわかりません。
形としては [{
"productid": list.productid,
"quantity": list.quantity
},
{
"productid": list.productid,
"quantity": list.quantity
}]
配列の中に複数の値を持てるようしたいです。
お力添えいただけるとうれしいです。

以下セッションストレージ _________________________________________________________________ cart json [ { "id": "1", "manufacture": "mont-bell", "price": "10000", "quantity": 2, "title": "パーカー" }, { "id": "3", "manufacture": "Marmot", "price": "13924", "quantity": 1, "title": "ジャケット" }, { "id": "4", "manufacture": "THE", "price": "3856", "quantity": 1, "title": "S/S" } ] user json { "user_id": "2", "user_name": "hoge", "user_zip_code": "231-8359" } subtotal 37780 以下javascript ____________________________________________________________________ $(document).ready(function() { $(document).on('click',"#completion",function(){ alert("kurikku") var user = JSON.parse(sessionStorage.getItem("user")); var list = JSON.parse(sessionStorage.getItem("cart")); var subtotal = sessionStorage.getItem("subtotal"); var users = { "userid": user.user_id, "subtotal": subtotal, "products": [ { "productid": list[i].productid, "quantity": list[i].quantity } ] }

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

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

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

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

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

kei344

2017/05/30 15:35

バッククオート3つの前後には改行を入れてください。記入エリアの右部分あたりにリアルタイムに結果が表示されていると思うので、そこを見ながら調整してください。
退会済みユーザー

退会済みユーザー

2017/05/30 15:35

ただちに修正します、ありがとうございます
kei344

2017/05/31 09:53

提示のコードでは保存していませんが、その部分はないということでしょうか。
退会済みユーザー

退会済みユーザー

2017/06/01 01:38

提示していない部分でsessionStorage.setItemしています、わかりづらくすいません
guest

回答1

0

ベストアンサー

行いたいことがほとんど分かりません。
以下のようなことを行いたいのでしょうか?

前提:
・セッションストレージには、[cart]と[user]が存在する。
・セッションストレージの[cart]には、商品情報が保存されている。
・セッションストレージの[user]には、ユーザ情報が保存されている。
・セッションストレージの[user]は、ユニーク(一人)である。
・セッションストレージの[cart]の商品情報は、同セッションストレージの[user]と紐づいた商品情報である。

行いたいこと:
・[#completion]をもつ要素をクリックしたさいに、セッションストレージの情報を元にして1人のユーザ情報と複数のカート商品情報の紐づけを行ったユーザ商品情報(便宜上つけた名前)のオブジェクトを作成する。

javascript

1 2 // user情報とcart情報の存在確認 3 if(!user || !list){ 4 // どちらかが存在しないのでエラー処理,必要なら独自実装 5 throw new ReferenceError("カート情報かユーザ情報がセッションストレージに保管されてないよ!!"); 6 } 7 // 何の情報か不明 8 var subtotal = sessionStorage.getItem("subtotal"); 9 // ユーザ商品情報の定義 10 // ユーザ情報の定義 11 var users = { 12 // ユーザID 13 "userid": user.user_id, 14 // 何の情報か不明 15 "subtotal": subtotal, 16 } 17 // 商品情報のユーザ商品情報で利用する情報へのコンバート 18 var itemLength = list.length 19 var itemList = []; 20 for(var itemIdx = 0 ; itemIdx < itemLength ; itemIdx+=1){ 21 // 個別商品情報のコンバート処理 22 itemList.push( 23 { 24 "productid": list[itemIdx].productid, 25 "quantity": list[itemIdx].quantity 26 } 27 ); 28 } 29 // ユーザ情報と商品情報を紐づけてユーザ商品情報を作成 30 users["products"] = itemList;

投稿2017/05/30 23:33

kanimaru

総合スコア1013

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

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

退会済みユーザー

退会済みユーザー

2017/06/01 01:45

わかりにく質問申し訳ありません 以降要点をまとめて投稿するよう気をつけます for文でlistlengthの数ループさせてやればいいんですね。。。
kanimaru

2017/06/01 01:49

ソースはuserが必ず配列か定義なし(この場合エラー)である前提で書いてありますので、 そうでないObjectの場合はfor文でlength取れずに動作が止まるので、そこらの型チェック も必要かと。
退会済みユーザー

退会済みユーザー

2017/06/01 14:35

ありがとうございます。 型はデバックで確認済みで配列形式でした!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問