2017-04-07 11 views
0

既存のJSON構造をより複雑なものにアップグレードしようとしています。JSON文字列を作成する際の問題

オリジナルのアイデアは、Xの束動物、caracteristicsの束をそれぞれ有するものである:

  • 動物
    • 動物1つの
      • 爪:4つの
      • 目:2
    • 動物2
      • 爪:0
      • 目:6
    • など

JSONはこのようなものです:よう

{ 
    "animals":[ 
     {"claws":"4", "eyes":"2"}, 
     {"claws":"0", "eyes":"6"}, 
     etc. 
    ] 
} 

あなたが見ることができます私は各動物オブジェクトの名前を付けていませんが、動物の特徴は配列の要素です。私はanimals [x]のようなループでそれらを使うことができます。

  • 動物
    • 動物1
      • ヘッド
        • 目:2爪


          は今、私は次のように、それぞれの動物のために巣を追加します

        • 人の
        • 耳:2
        • 爪:4
        • テール:1
        • 足:4
    • 動物2
        • 目:6
        • 耳:0
        • 爪:0
        • 尾:0
        • 足:8

しかし、私は(同じ名前「動物」との)各動物のオブジェクトを命名し、動物に何のために配列を使用せずにそれを行うには管理していませんでした:

{ 
    "animals":[ 
     {"animal":[ 
      {"head": 
       {"eyes":"2", "ears":"2"} 
      }, 
      {"body": 
       {"claws":"4", "tails":"1", "legs":"4"} 
      } 
     ]}, 
     {"animal":[ 
      {"head": 
       {"eyes":"6", "ears":"0"} 
      }, 
      {"body": 
       {"claws":"0", "tails":"0", "legs":"8"} 
      } 
     ]} 
    ] 
} 

私はそれを見つけますなぜなら、私は以前のような配列としてそれらを反復したいので、私は各動物構造の名前を必要としません(特にそれらはすべて "動物"という名前になります)。

2)私は数や要素の名前を知っているので、私はの配列を必要としません。

私はそのようなものを使用することがしたいが、それは動作しません:

{ 
    "animals":[ 
     { 
      {"head": 
       {"eyes":"2", "ears":"2"} 
      }, 
      {"body": 
       {"claws":"4", "tails":"1", "legs":"4"} 
      } 
     }, 
     { 
      {"head": 
       {"eyes":"6", "ears":"0"} 
      }, 
      {"body": 
       {"claws":"0", "tails":"0", "legs":"8"} 
      } 
     } 
    ] 
} 

だから、配列や名前を使用せずに、ネストの方法がありますか?

+2

'{ "動物":[{ "頭":{ "目": "2" を、 "耳": "2"}、 "身体":{"爪": "4"、 "尾": "1"、 "足": "4"}}、{"頭":{"目" "爪": "0"、 "尾": "0"、 "脚": "8"}}] '? – Larme

答えて

1

確かにあります!ハッシュはのキー値のペアです。そのため、{}を使用する場合は、キーが必要です。配列は簡単コレクションです。それは、この場合には{ {}, {}, {} ... }、そう:だから{}シンプルなコレクション(あなたはあなたの例では{}は、単純なコレクション、表情だったので、キーを使用すると、後者は動作しませんでした理由ですすることはできません)[ {}, {}, {} ... ]でなければなりませんでしたが、あなたはそれを簡単にすることができ、だけではない巣が何度も実行します。

{ 
    "animals":[ 
     { 
      "head": { 
       "eyes":"2", 
       "ears":"2" 
      }, 
      "body": { 
       "claws":"4", 
       "tails":"1", 
       "legs":"4" 
      } 
     }, 
     # ... 
    ] 
} 
+0

あなたとラルメに感謝します。私は*頭と*体*がキーであったことに気づきませんでした。そして、次の湾曲した括弧要素は値でした... JSONは私の最悪の敵です。ありがとう。 – Destal

+0

@ SimonDechamps問題ありません! –

関連する問題