いつもお世話になっております。現在、フォームで入力された値を、javascript内でjsonに変換しようとしています。
fields_forを利用している、複数行入力する複雑なフォームのため、なかなかスムーズに望んだ形のjsonを作成することができず、苦戦しています。
以下の、①のformの値を②のjson文字列に変換したいです。
いろいろと挑戦してみましたが、上手く行かないのでご教示頂きたいです。
<script> $(function(){ $('form').on('submit',function(){ var data = $('form').serializeArray(); jsondata = (JSON.stringify(data)); }); }); </script> ①jsondataの中身 ↓ [ { "name": "utf8", "value": "✓" }, { "name": "_method", "value": "create" }, { "name": "day", "value": "20180508" }, //mukiからrowcommonvalueまでが1行目のフォームのデータ { "name": "model[][muki]", "value": "1" }, { "name": "model[][rowno]", "value": "1" }, { "name": "model[][code]", "value": "10" }, { "name": "model[][hissuvalue]", "value": "100" }, { "name": "model[][muki]", "value": "0" }, { "name": "model[][rowno]", "value": "1" }, { "name": "model[][code]", "value": "20" }, { "name": "model[][hissuvalue]", "value": "50" }, { "name": "commonmodel[][rowcommonvalue]", "value": "1" }, //mukiからrowcommonvalueまでが2行目のフォームのデータ { "name": "model[][muki]", "value": "1" }, { "name": "model[][rowno]", "value": "2" }, { "name": "model[][code]", "value": "" }, { "name": "model[][hissuvalue]", "value": "" }, { "name": "model[][muki]", "value": "0" }, { "name": "model[][rowno]", "value": "2" }, { "name": "model[][code]", "value": "30" }, { "name": "model[][hissuvalue]", "value": "50" }, { "name": "commonmodel[][rowcommonvalue]", "value": "2" } ]
②以下のようなjsonにしたいです。
- 要件としては、muki~hissuvalueまでを一つのjsonとして、各行を2つのjsonに分解する。
- rowcommonvalueはその行に同じ値を振る
- dayは全てのjsonに同じ値を振る
- hissuvalueが空欄の場合、その部分のjsonは作成しない
[ { "muki": "1", "rowno": "1", "code": "10", "hissuvalue": "100", "day": "20180508", "rowcommonvalue": "1", }, { "muki": "0", "rowno": "1", "code": "20", "hissuvalue": "50", "day": "20180508", "rowcommonvalue": "1", }, { "muki": "0", "rowno": "2", "code": "30", "hissuvalue": "50", "day": "20180508", "rowcommonvalue": "2", } ]
回答1件
あなたの回答
tips
プレビュー