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

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

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

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

Q&A

3回答

273閲覧

連想文字列の特定のキーのバリューをカウントアップさせる方法

Monlar

総合スコア1

JSON

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

1グッド

0クリップ

投稿2024/06/19 02:59

実現したいこと

表題の件について知りたいです。
有識者の方、ご教示ください。

下記のような連想配列(JSON)があったとき、

"name" : "太郎"
"number" : "0001"

これをnumberが0001、0002、、、0010とカウントアップさせていきながら、複数のオブジェクトを生成したいです。

期待としては、

"name" : "太郎"
"number" : "0001"
},

"name" : "太郎"
"number" : "0002"
},

"name" : "太郎"
"number" : "0003"

と生成していきたいものになります。

Excelなどでできるかと考えたのですが、
いイマイチ、自分なりに解決策が出ません。

このような方法を実現するため、どのような方法が考えられるでしょうか?

すみませんが、よろしくお願いします。

発生している問題・分からないこと

Excelやサクラエディタ等のアプリケーションで動的にカウントアップしていくキー情報をもつ、連想配列の生成方法がわからない。

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

Excel書籍やサイト等で調べたが、上記を実現する方法が見当たらない。

補足

特になし

tatsu99👍を押しています

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

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

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

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

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

yambejp

2024/06/19 03:02

jsonデータにするならjavascriptなどで組むほうが楽だと思いますがexcelを利用する意図はなんでしょうか?
sk.exe

2024/06/19 09:26

Excel 上で json ファイルをパースしてレコード/テーブルとして展開したければ、Power Query を使用すれば一応は可能です。 > カウントアップさせていきながら、複数のオブジェクトを生成 これもやろうと思えばできなくはないでしょうが、問題は一体どのような目的からそのようなオブジェクトを生成しようとしているのか、それを最終的にどのような形式で出力するつもりなのか、ということ。 もし「新しいjsonファイルを作成したい」ということであれば Power Query のみで完結できる問題ではありません。
guest

回答3

0

こういうことでしょうか

ステップ1

手動入力
A1:1
B1:{
B2:"name" : "太郎"
B3:="""number"" : """&TEXT(A1,"0000")&""""
B4:},

A5:=A1+1
B5:{
B6:"name" : "太郎"
B7:="""number"" : """&TEXT(A5,"0000")&""""
B8:},

ステップ2

A5:B8を選択し下方向にオートフィル

イメージ説明

投稿2024/06/20 06:44

編集2024/06/20 08:09
hawawa

総合スコア89

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

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

0

動作しているアプリケーションで動的にということでなく、単に「0001~0050までのデータを作りたい」というのが要求であれば、Excelとサクラエディタでできます。

VSCodeなどの他のエディタであれば、連番を入れる機能(拡張機能)などもあったりするので、Excelも不要になったりするでしょう。


自分でやるなら、プログラムでやる一択ですね。
python

python

1 2import json 3 4json_list = [] 5for i in range(1, 101): 6 json_list.append({"name" : "太郎", "number" : f"{i:04d}"}) 7 8print(json.dumps(json_list))

bash

bash

1for i in {0001..0100}; do echo "{\"name\" : \"太郎\", \"number\" : \"$i\"},"; done

投稿2024/06/20 05:19

編集2024/06/20 05:26
TakaiY

総合スコア13337

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

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

0

無難なところでjsでのサンプル

html

1<script> 2document.addEventListener('click',({target})=>{ 3 if(target.matches('#btn')){ 4 const to=Number(document.querySelector('[name=to]').value); 5 const num=Number(JSON.parse(org_ta.value).number); 6 console.log(num); 7 const elems=Array(to).fill(org_ta.value).map((x,y)=>(x=JSON.parse(x),x.number=(y+num).toString().padStart(4,'0'),x)); 8 console.log(elems); 9 new_ta.value=JSON.stringify(elems); 10 } 11}); 12</script> 13<textarea id="org_ta" rows=10> 14{ 15 "name":"太郎", 16 "number":"0001" 17}</textarea> 18<textarea id="new_ta" rows=10></textarea><br> 19to:<input name="to" value="10"><br> 20<input type="button" value="go" id="btn">

投稿2024/06/19 03:27

yambejp

総合スコア115870

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.40%

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

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

質問する

関連した質問