私は、不規則になることがある大きなJSONオブジェクトを持っています。私は、そのオブジェクトをすべてフラットな配列に配置する方法を見つけることを望んでいます。入れ子オブジェクトと配列のオブジェクトを再帰的に平坦化するjavascript
これは、例えば、JSONです:
{
"name":"getPost",
"request":{
"type":"object",
"fields":[{
"key":"id",
"value":{"type":"string"}
}]
},
"response":{
"type":"object",
"fields":[{
"key":"post",
"value":{
"type":"object",
"fields":[{
"key":"id",
"value":{"type":"string"}
},{
"key":"title",
"value":{"type":"string"}
},{
"key":"content",
"value":{"type":"string"}
},{
"key":"userId",
"value":{"type":"string"}
}]
}
}]
},
"error":[]
}
と私はそれが私が唯一の浅いキーの値を持つオブジェクトが必要:(このような何かになりたい)
[
{
"key":"id",
"value":{"type":"string"}
},{
"key":"post",
"value":{"type":"object"}
},{
"key":"id",
"value":{"type":"string"}
},{
"key":"title",
"value":{"type":"string"}
},{
"key":"content",
"value":{"type":"string"}
},{
"key":"userId",
"value":{"type":"string"}
}
]
私が知っている必要がありますES6なしでこれを行う簡単な方法があれば。
これは非常に特殊な問題です。配列を平坦化するだけでなく、データが正しく見えるときに知っている形式にデータを正規化します。したがって、問題は次のとおりです。ターゲット構造を定義するルールは何ですか? –
... - ***のOPの要求に固執している場合、浅いキー値を持つオブジェクトのみが必要です*** - 1つは '{" type ":" string "}'のリストで終わりますこれは唯一の浅い部分構造です。 '{" key ":" userId "、" value ": {" type ":" string "}}'すでに複雑すぎます。または***浅いキー値***はどういう意味ですか? –
私は型を持つすべてのオブジェクトを意味する、私の問題は型を検証したい、文字列や数値、配列やオブジェクトのようにプリミティブにすることができます。また、それらをすべて見つける必要があるので、それらを検証します。 @PeterSeliger –