2017-05-28 9 views
0

foreachを使用して各オブジェクトにアクセスしようとしています...そして、そのjson配列がキーがあるため特定の数のレコード、次に他の値を持つ別のキーなどがあります。気づいた場合は、色もあります。 jsonで色を表示するにはどうすればいいですか?私は私のページにそれが必要です。キーと値の配列を持つjsonを反復する方法

これは私のJSONです:

{ 
    "7": [{ 
     "idType": 0, 
     "nrReq": 41, 
     "dataD": "2017-05-14", 
     "typeC": "CO", 
     "startDate": "2017-05-16", 
     "endDate": "2017-05-17", 
     "dataA": "2017-05-14", 
     "color": "000080" 
    }, { 
     "idType": 0, 
     "nrReq": 42, 
     "dataD": "2017-05-14", 
     "typeC": "CM", 
     "startDate": "2017-05-23", 
     "endDate": "2017-05-24", 
     "dataA": "2017-05-18", 
     "color": "000080" 
    }, 

    "8": [{ 
     "idType": 0, 
     "nrC": 53, 
     "dataD": "2017-05-20", 
     "typeC": "CO", 
     "startDate": "2017-05-23", 
     "endDate": "2017-05-23", 
     "dataA": "2017-05-20", 
     "color": "ffd9b3" 
    }], 

    "25": [{ 
     "idType": 0, 
     "nrC": 51, 
     "dataD": "2017-05-23", 
     "typeC": "CP", 
     "startDate": "2017-05-29", 
     "endDate": "2017-05-30", 
     "dataA": "2017-05-20", 
     "color": "ff6600" 
    }] 
    } 

それはどのようになっているはずですか?私はそれが2つのforeachsであるべきだと思う...

+0

はい、あなたが複数のループを必要とする...メインオブジェクトの各プロパティに1つ、どのような 'データ[「7」]'配列の2番目の要素については、各プロパティ – charlietfl

答えて

0

あなたが知っている構造のため、あなたは1つを使うことができます。

Notice: JSONに構文エラーが発生したため、「idごとに」オブジェクトが1つしか存在しないことが考えられます。 :)

アレイ内に1つのアイテムしか存在しないことがわかっている場合は、各アレイを繰り返し実行する必要があります(2つのループ)。

var data = { 
 
    "7": [{ 
 
    "idType": 0, 
 
    "nrReq": 41, 
 
    "dataD": "2017-05-14", 
 
    "typeC": "CO", 
 
    "startDate": "2017-05-16", 
 
    "endDate": "2017-05-17", 
 
    "dataA": "2017-05-14", 
 
    "color": "000080" 
 
    }], 
 
    "8": [{ 
 
    "idType": 0, 
 
    "nrC": 53, 
 
    "dataD": "2017-05-20", 
 
    "typeC": "CO", 
 
    "startDate": "2017-05-23", 
 
    "endDate": "2017-05-23", 
 
    "dataA": "2017-05-20", 
 
    "color": "ffd9b3" 
 
    }], 
 

 
    "25": [{ 
 
    "idType": 0, 
 
    "nrC": 51, 
 
    "dataD": "2017-05-23", 
 
    "typeC": "CP", 
 
    "startDate": "2017-05-29", 
 
    "endDate": "2017-05-30", 
 
    "dataA": "2017-05-20", 
 
    "color": "ff6600" 
 
    }] 
 
}; 
 

 
for (var id in data) { 
 
    if (data.hasOwnProperty(id)) { 
 
    console.log(data[id][0].color); // etc 
 
    } 
 
}

+1

のアレイの別の?配列の長さが不明であると仮定しなければならない – charlietfl

+0

JSONは無効であるため、不足しているプロパティ(id-ish)があると想定するのは簡単です。 :)また、それを反映する答えを編集しました。 –

+0

ここでは、あなたのjsonを修正し、それらの小道具を読んで色の値を取得するコードを作った。 http://jsbin.com/qexakafago/edit?js,console,outputこれらの数字の小道具は、私たちが使用したjsonデータの無効なキー値です。const props = Object.keys(json); javascriptにこれらのプロパティが動的に含まれるようにします。次に、2番目のネストされたプロパティへの2番目のルートを作成するために、別個の変数(i)が必要でした。 – Chris

関連する問題