すべてのキーと値のペアが常に出力されるとは限らないため、単純な JSON のセットを再フォーマットする必要があります。
{
"result": [
{
"category": "Negative Notification",
"event": "open",
"result": 2
},
{
"category": "Referral",
"event": "bounce",
"result": 1
},
{
"category": "Negative Notification",
"event": "delivered",
"result": 34
},
{
"category": "Negative Notification",
"event": "processed",
"result": 34
},
{
"category": "Positive Notification",
"event": "open",
"result": 42
},
{
"category": "Referral",
"event": "delivered",
"result": 17
},
{
"category": "Positive Notification",
"event": "processed",
"result": 504
},
{
"category": "Referral",
"event": "processed",
"result": 18
},
{
"category": "Positive Notification",
"event": "delivered",
"result": 504
},
{
"category": "Negative Notification",
"event": "bounce",
"result": 16
},
{
"category": "Positive Notification",
"event": "bounce",
"result": 176
},
{
"category": "Referral",
"event": "open",
"result": 10
}
]
}
これが出力される方法の問題は、データが利用できるかどうかに依存し、番号でオブジェクトにアクセスすると、予期しない機能が作成される可能性があることです。2 つ目の問題は、javascript で操作する必要があり、サーバー側で操作できないことです。
各カテゴリがオブジェクト (現在は 3 つですが、最大 5 つになる可能性があります) がオブジェクト内のデータを要約するように、JSON を再フォーマットしたいと考えています。例えば:
{
"result": {
"Negative Notification" : [
{
"processed":34,
"delivered":34,
"bounces":16,
"opens":2
}
],
"Positive Notification" : [
{
"processed":504,
"delivered":504,
"bounces":176,
"opens":42
}
],
"Referral" : [
{
"processed":18,
"delivered":17,
"bounces":1,
"opens":10
}
]
}
}
どうすればこれをやってのけることができますか?単にループしてオブジェクトに名前を付けるだけでは、どこにも行きません。