第6.3回は、辞書と配列を混ぜたもの、100本ノックです。 これであなたもjsonマスター(になるとイイナ!)。

解き方などは第6.2回までと同じなので、そちらを見てください。

ヒント

最後の方はかなり難しいと思います(出来なくても問題無いレベルかも…)。 一応ヒントなどを。

まず、難しい問題の前にはそれのヒントになる問題を並べてあるつもりです。難しい問題に当たった時は、その前の数問をなんで私が設置したかを考えると良いかも。

また、長い物は自分で改行を入れる方が良いと思います。 例えば以下のような出題分があったら

var hairetu = [{"id":1,"itemType":1,"value":20,"description":"これは体力が20回復します。"},{"id":2,"itemType":1,"value":80,"description":"これは体力が80回復します。"},{"id":3,"itemType":2,"value":10,"description":"これは攻撃力が10の武器です。"},{"id":4,"itemType":2,"value":25,"description":"これは攻撃力が25の武器です。"}];

以下のように、改行を入れてから考えます。

var hairetu = [{"id":1,"itemType":1,"value":20,"description":"これは体力が20回復します。"},
{"id":2,"itemType":1,"value":80,"description":"これは体力が80回復します。"},
{"id":3,"itemType":2,"value":10,"description":"これは攻撃力が10の武器です。"},
{"id":4,"itemType":2,"value":25,"description":"これは攻撃力が25の武器です。"}];

原則としては「一番外側」の配列とか辞書の区切りで改行を入れます。 現時点では意味が分からなくても、これらの問題に当たる所まで行ったら意味が分かるようになっていると思いますので、 難しい問題まで行った時に自分で考えてみてください。

解く時は、自分が分かりやすい所に好きに改行を入れてOKです。別に上の原則通りじゃなくても構いません。

では行ってみましょう!

100本ノック、スタート!

以下の辞書を生成せよ
キー 要素
るーしー 15014
ダニエル 12518
結果:

答え:
{"るーしー":15014,"ダニエル":12518}

以下の配列を生成せよ
  1. "あじゃ"
  2. "るーしー"
  3. "ダニエル"
結果:

答え:
["あじゃ","るーしー","ダニエル"]

以下の配列を生成せよ
  1. "むぇーーー"
  2. "コケー"
  3. "ダネーー"
結果:

答え:
["むぇーーー","コケー","ダネーー"]

「"コケー"」 を取り出せ
結果:

答え:
var kotae = hairetu[1];

以下の辞書を生成せよ
キー 要素
"わんわん"
"にゃーん"
おっさん "にゃーん"
あじゃ "むえぇーー"
結果:

答え:
{"犬":"わんわん","猫":"にゃーん","おっさん":"にゃーん","あじゃ":"むえぇーー"}

以下の配列を生成せよ
  1. "こちんこちん"
  2. "ぬっくぬく"
  3. "しゅるしゅる"
結果:

答え:
["こちんこちん","ぬっくぬく","しゅるしゅる"]

以下の辞書を生成せよ
キー 要素
雲鯖 "あじゃ"
jp鯖 "にぎゃーら"
結果:

答え:
{"雲鯖":"あじゃ","jp鯖":"にぎゃーら"}

以下の辞書を生成せよ
キー 要素
トロツキ 56125
あじゃ 38726
ののくぼ 7442
結果:

答え:
{"トロツキ":56125,"あじゃ":38726,"ののくぼ":7442}

以下の辞書を生成せよ
キー 要素
雲鯖 ["あじゃ","るーしー","ダニエル"]
jp鯖 "にぎゃーら"
結果:

答え:
{"雲鯖":["あじゃ","るーしー","ダニエル"],"jp鯖":"にぎゃーら"}

以下の辞書を生成せよ
キー 要素
あじゃ ["むぇーー","コケー"]
るーしー "しゅるしゅるする"
結果:

答え:
{"あじゃ":["むぇーー","コケー"],"るーしー":"しゅるしゅるする"}

以下の配列を生成せよ
  1. "むぇーー"
  2. "コケー"
  3. "ダネーー"
結果:

答え:
["むぇーー","コケー","ダネーー"]

以下の辞書を生成せよ
キー 要素
ダニエル "ダネーー"
あじゃ "むえぇーー"
結果:

答え:
{"ダニエル":"ダネーー","あじゃ":"むえぇーー"}

以下の辞書を生成せよ
キー 要素
ダニエル "ダネーー"
あじゃ ["むぇーー","コケー"]
結果:

答え:
{"ダニエル":"ダネーー","あじゃ":["むぇーー","コケー"]}

以下の配列を生成せよ
  1. "こちんこちん"
  2. "ぬっくぬく"
  3. "しゅるしゅるする"
結果:

答え:
["こちんこちん","ぬっくぬく","しゅるしゅるする"]

以下の辞書を生成せよ
キー 要素
あじゃ "むえぇーー"
るーしー "しゅるしゅるする"
結果:

答え:
{"あじゃ":"むえぇーー","るーしー":"しゅるしゅるする"}

以下の辞書を生成せよ
キー 要素
あじゃ "むえぇーー"
るーしー ["こちんこちん","ぬっくぬく","しゅるしゅるする"]
結果:

答え:
{"あじゃ":"むえぇーー","るーしー":["こちんこちん","ぬっくぬく","しゅるしゅるする"]}

以下の辞書を生成せよ
キー 要素
あじゃ ["むぇーー","コケー"]
るーしー "しゅるしゅるする"
結果:

答え:
{"あじゃ":["むぇーー","コケー"],"るーしー":"しゅるしゅるする"}

以下の辞書を生成せよ
キー 要素
あじゃ ["むぇーー","コケー"]
るーしー ["こちんこちん","ぬっくぬく","しゅるしゅるする"]
結果:

答え:
{"あじゃ":["むぇーー","コケー"],"るーしー":["こちんこちん","ぬっくぬく","しゅるしゅるする"]}

「"ダネーー"」 を取り出せ
結果:

答え:
var kotae = jisyo["ダニエル"];

「"むえぇーー"」 を取り出せ
結果:

答え:
var kotae = jisyo["あじゃ"];

「["むぇーー","コケー"]」 を取り出せ
結果:

答え:
var kotae = jisyo["あじゃ"];

「"コケー"」 を取り出せ
結果:

答え:
var kotae = hairetu[1];

「"むぇーー"」 を取り出せ
結果:

答え:
var kotae = hairetu[0];

「"むぇーー"」 を取り出せ
結果:

答え:
var kotae = jisyo["あじゃ"][0];

以下の要素を置き換えろ
もとの要素 新しい要素
"むぇーー" "いくよ!いくよ!"
結果:

答え:
jisyo["あじゃ"][0] = "いくよ!いくよ!";

「"コケー"」 を取り出せ
結果:

答え:
var kotae = jisyo["あじゃ"][1];

「"ぬっくぬく"」 を取り出せ
結果:

答え:
var kotae = jisyo["るーしー"][1];

「"コケー"」 を取り出せ
結果:

答え:
var kotae = jisyo["あじゃ"][1];

「"しゅるしゅるする"」 を取り出せ
結果:

答え:
var kotae = jisyo["るーしー"][2];

「"しゅるしゅるする"」 を取り出せ
結果:

答え:
var kotae = jisyo["るーしー"][2];

「"むぇーー"」 を取り出せ
結果:

答え:
var kotae = jisyo["あじゃ"][0];

「"こーしー"」 を取り出せ
結果:

答え:
var kotae = jisyo["るーしー"][2];

以下の要素を置き換えろ
もとの要素 新しい要素
"こーしー" "麦茶"
結果:

答え:
jisyo["るーしー"][2] = "麦茶";

以下の要素を置き換えろ
もとの要素 新しい要素
"コケー" "にゃーん"
結果:

答え:
jisyo["あじゃ"][1] = "にゃーん";

以下の辞書を生成せよ
キー 要素
無職 ["えいら","たかし","karino2012"]
労働者 ["にゃご","みぞし"]
結果:

答え:
{"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]}

「["えいら","たかし","karino2012"]」 を取り出せ
結果:

答え:
var kotae = jisyo["無職"];

「"karino2012"」 を取り出せ
結果:

答え:
var kotae = hairetu[2];

「"karino2012"」 を取り出せ
結果:

答え:
var kotae = jisyo["無職"][2];

「"えいら"」 を取り出せ
結果:

答え:
var kotae = jisyo["無職"][0];

「"にゃご"」 を取り出せ
結果:

答え:
var kotae = jisyo["労働者"][0];

以下の要素を置き換えろ
もとの要素 新しい要素
"にゃご" "じゃがしま"
結果:

答え:
jisyo["労働者"][0] = "じゃがしま";

以下の要素を置き換えろ
もとの要素 新しい要素
"たかし" "キムラ"
結果:

答え:
jisyo["無職"][1] = "キムラ";

以下の辞書を生成せよ
キー 要素
雲鯖 ["あじゃ","るーしー","ダニエル"]
jp鯖 "にぎゃーら"
結果:

答え:
{"雲鯖":["あじゃ","るーしー","ダニエル"],"jp鯖":"にぎゃーら"}

以下の辞書を生成せよ
キー 要素
雲鯖 {"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]}
jp鯖 "にぎゃーら"
結果:

答え:
{"雲鯖":{"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]},"jp鯖":"にぎゃーら"}

「"にぎゃーら"」 を取り出せ
結果:

答え:
var kotae = jisyo["jp鯖"];

「{"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]}」 を取り出せ
結果:

答え:
var kotae = jisyo["雲鯖"];

「["えいら","たかし","karino2012"]」 を取り出せ
結果:

答え:
var kotae = jisyo["無職"];

「["えいら","たかし","karino2012"]」 を取り出せ
結果:

答え:
var kotae = jisyo["雲鯖"]["無職"];

「"たかし"」 を取り出せ
結果:

答え:
var kotae = hairetu[1];

「"karino2012"」 を取り出せ
結果:

答え:
var kotae = hairetu[2];

「"karino2012"」 を取り出せ
結果:

答え:
var kotae = jisyo["雲鯖"]["無職"][2];

「"えいら"」 を取り出せ
結果:

答え:
var kotae = jisyo["雲鯖"]["無職"][0];

「"にゃご"」 を取り出せ
結果:

答え:
var kotae = jisyo["雲鯖"]["労働者"][0];

「"にゃご"」 を取り出せ
結果:

答え:
var kotae = hairetu[1];

以下の要素を置き換えろ
もとの要素 新しい要素
"にゃご" "キムラ"
結果:

答え:
hairetu[1] = "キムラ";

以下の要素を置き換えろ
もとの要素 新しい要素
"にゃご" "キムラ"
結果:

答え:
jisyo["雲鯖"]["労働者"][0] = "キムラ";

以下の要素を置き換えろ
もとの要素 新しい要素
"みぞし" "キムラ"
結果:

答え:
jisyo["雲鯖"]["労働者"][1] = "キムラ";

以下の要素を置き換えろ
もとの要素 新しい要素
"たかし" "あかさ"
結果:

答え:
jisyo["雲鯖"]["無職"][1] = "あかさ";

「3」 を取り出せ
結果:

答え:
var kotae = jisyo.id;

「{"id":3,"itemType":2,"value":10,"description":"これは攻撃力が10の武器です。"}」 を取り出せ
結果:

答え:
var kotae = hairetu[1];

「3」 を取り出せ
結果:

答え:
var kotae = hairetu[1].id;

「"これは攻撃力が10の武器です。"」 を取り出せ
結果:

答え:
var kotae = jisyo.description;

「"これは攻撃力が25の武器です。"」 を取り出せ
結果:

答え:
var kotae = hairetu[3].description;

「"これは体力が20回復します。"」 を取り出せ
結果:

答え:
var kotae = hairetu[0].description;

「20」 を取り出せ
結果:

答え:
var kotae = hairetu[0].value;

「"これは攻撃力が10の武器です。"」 を取り出せ
結果:

答え:
var kotae = hairetu[1].description;

以下の要素を置き換えろ
もとの要素 新しい要素
"これは攻撃力が10の武器です。" "むぇーー"
結果:

答え:
hairetu[1].description = "むぇーー";

以下の要素を置き換えろ
もとの要素 新しい要素
20 9999
結果:

答え:
hairetu[0].value = 9999;

以下の辞書を生成せよ
キー 要素
name "あじゃ"
nakigoe "むぇーー"
結果:

答え:
{"name":"あじゃ","nakigoe":"むぇーー"}

以下の配列を生成せよ
  1. "あじゃ"
  2. "るーしー"
  3. "ダニエル"
結果:

答え:
["あじゃ","るーしー","ダニエル"]

以下の配列を生成せよ
  1. {"name":"あじゃ","nakigoe":"むぇーー"}
  2. "るーしー"
  3. "ダニエル"
結果:

答え:
[{"name":"あじゃ","nakigoe":"むぇーー"},"るーしー","ダニエル"]

以下の辞書を生成せよ
キー 要素
雲鯖 [{"name":"あじゃ","nakigoe":"むぇーー"},"るーしー","ダニエル"]
jp鯖 "にぎゃーら"
結果:

答え:
{"雲鯖":[{"name":"あじゃ","nakigoe":"むぇーー"},"るーしー","ダニエル"],"jp鯖":"にぎゃーら"}

「"るーしー"」 を取り出せ
結果:

答え:
var kotae = jisyo["雲鯖"][1];

「"にぎゃーら"」 を取り出せ
結果:

答え:
var kotae = jisyo["jp鯖"];

「"むぇーー"」 を取り出せ
結果:

答え:
var kotae = jisyo["雲鯖"][0].nakigoe;

「"あじゃ"」 を取り出せ
結果:

答え:
var kotae = jisyo["雲鯖"][0].name;

ここまで終えた後に、第六回を読み直すと、ずっと良く分かると思うので、気力が残っていたらどうぞ。
(最後の方の奴が解けるなら、理屈なんて理解しててもしてなくても困らないですけどね。特に最後二問はちゃんと理解してても難しいレベルなので)