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

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

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

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

Q&A

解決済

1回答

9042閲覧

JSONの[]が二つある時は、配列の中に配列があるという意味でしょうか?

退会済みユーザー

退会済みユーザー

総合スコア0

JSON

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

0グッド

0クリップ

投稿2018/06/03 16:41

編集2018/06/03 17:03

1はOK

json

1{"data": [["A","B","C"]]}

2はダメ (なぜ!?)

json

1{"data": ["A","B","C"]}

3はOK

json

1{"data": [["A","B","C"],["D","E","F"]]}

【知っていること】
{}はオブジェクト
[]は配列

1と3はいったいどういう意味で、
2はなぜダメなのでしょうか?

どなたか簡単にわかりやすく説明していただけますでしょうか・・・

※検索したらこのような記事をみつけましたが、よくわかりませんでしたので、
ここで質問させていただきました。

https://blog.goo.ne.jp/xmldtp/e/20ee95b2f8c620be2b3a211cc8dd7358

ありがとうございます。

※追記

DATATABLESというjqueryのプラグイン?を使っていたら、
https://datatables.net/
2でエラーになりました。

なんのエラーかもよくわからないのです。
かっこが二つある時と一つある時で、データのタイプが違いますか?
https://datatables.net/manual/tech-notes/4

JQUERY

1<script type="text/javascript"> 2 $(document).ready(function() { 3 $('#test').DataTable( { 4 "ajax":"json.txt",``` 5 6追記2 7 8すいません。2点追記です。 9 10※そもそも、このJSONはエクセルのテーブルをマクロでJSONにしたものです。 11レコード(行)を扱っているから、このようなフォーマットになっているのかもしれません。 12https://github.com/VBA-tools/VBA-JSON 13 14※1と3だとうまくいきます。

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

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

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

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

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

kei344

2018/06/03 16:45

「2はダメ」はどこに記載されているのでしょうか。
退会済みユーザー

退会済みユーザー

2018/06/03 16:50

言葉が足りず申し訳ございませんでした。DATATABLESというJQUERYのプラグインだと、②でエラーになったので、だめなフォーマットだと勝手に思いこんでいました。
退会済みユーザー

退会済みユーザー

2018/06/03 17:04

ありがとうございます。
退会済みユーザー

退会済みユーザー

2018/06/03 17:04

このようなツールがあるのですね。
guest

回答1

0

ベストアンサー

2も正しいですよ?

JSONの[]が二つある時は、配列の中に配列があるという意味でしょうか?

はい。配列の中の先頭要素として配列が存在する,という意味です。

投稿2018/06/03 16:47

mpyw

総合スコア5223

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

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

退会済みユーザー

退会済みユーザー

2018/06/03 16:58

ありがとうございます。追記いたしました。 二つないと、要素が行としてみなされない、(レコードとして)ということでしょうか。
mpyw

2018/06/03 17:05 編集

{"data":[["a", "b"]]} ← dataは0番目に「0番目に"a",1番目に"b"を持つ配列」を持つ配列 {"data":["a", "b"]} ← dataは0番目に"a",1番目に"b"を持つ配列
mpyw

2018/06/03 17:03 編集

どういうフォーマットをレコードとみなすかはDATATABLESにどういうコードが書かれているかによります。表形式のデータを想定しているのであれば2階層の配列になるほうが普通ですね。
退会済みユーザー

退会済みユーザー

2018/06/03 17:08

こんな夜遅くに心から感謝します。本当に助かります。 エラーメッセージはこうです。 DataTables warning: table id=test - Requested unknown parameter '1' for row 0, column 1 表形式のデータだとなぜ2断層の配列が普通なのか解説して頂けますでしょうか?
退会済みユーザー

退会済みユーザー

2018/06/03 17:11

https://cdn.datatables.net/1.10.16/js/jquery.dataTables.js Datatables.jsありますが、読むのたぶん3日かかります。ARRAYなどのキーワードで検索かけて、調べてみることにします。もしアドバイスあれば教えてください。
mpyw

2018/06/03 17:12

数学,というかもはや算数の話ですが,「表」のデータは1次元でしょうか?2次元でしょうか?縦と横に広がっているから2次元ですよね。2次元であれば配列は2階層ないと表を表現できないですよね。
退会済みユーザー

退会済みユーザー

2018/06/03 17:13

なんとなくわかりました。ROWの0が問題だよといっているので、 0番目にaしかなければ、問題ですね。
mpyw

2018/06/03 17:14

HTMLの <table> と <tr> と <td> もそうです。例えるなら <table> → {"data":[["a", "b"], ["c", "d"]]} <tr> → ["a", "b"] と ["c", "d"] <td> → "a" と "b" と "c" と "d"
退会済みユーザー

退会済みユーザー

2018/06/03 17:16

文系なのですが、なぜがこんな仕事を回されて(泣)算数もできないのです・・・ たしかに{"data":["a", "b"]}は一次元ですね。列と行が必要だから、列と行で一区切りにしなければいけないですね。勉強になります。
退会済みユーザー

退会済みユーザー

2018/06/03 17:18

わかりやすい回答ありがとうございます。付き合っていただき本当に感謝します。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問