¿Cómo extraer los tags y valores de cualquier estructura JSON?
Quisiera encontrar una manera de extraer todos los tags y valores de cualquier respuesta JSON, es decir un algoritmo capaz de identificar cualquier estructura de respuesta, puesto que siempre he trabajado con este tipo de servicio pero conociendo de manera previa su estructura de respuesta: Ejm:
{"xx": {
"xx": 122,
"xx": {
"xx": {
"xx": 123,
"xx": {"67688": 0},
"xx": 23.7995,
"xx": 26.575061,
"xx": 5.33,
"xx": [
{
"xx": 0,
"yy": 1,
"tt": 0,
"dd": 0,
"uu": 0,
"pp": 0,
"oo": 0
},
{
"xx": 0,
"xx": 2,
"xx": 0,
"rr": 0,
"tt": 0,
"pp": 0,
"ll": 0
},
{
"ww": 0,
"yy": 3,
"uu": 0,
"ii": 0,
"ii": 0,
"uu": 0,
"pp": 0
},
{
"ll": 0,
"ee": 4,
"ww": 0,
"qq": 0,
"tt": 0,
"uu": 0,
"ii": 0
},
{
"oo": 0,
"pp": 5,
"bb": 0,
"bb": 0,
"nn": 0,
"nn": 0,
"ii": 0
},
{
"oo": 0,
"pp": 6,
"rr": 0,
"aa": 0,
"qq": 0,
"ee": 0,
"rr": 0
},
{
"qq": 0,
"ww": 7,
"ww": 0,
"rr": 0,
"ss": 0,
"rr": 0,
"uu": 0
},
{
"ii": 0,
"uu": 8,
"tt": 0,
"rr": 0,
"ww": 0,
"qq": 0,
"aa": 0
},
{
"ll": 0,
"ññ": 9,
"oo": 0,
"ii": 0,
"uu": 0,
"yy": 0,
"tt": 0
},
{
"tt": 0,
"yy": 10,
"ii": 0,
"ii": 0,
"oo": 0,
"uu": 0,
"qq": 0
},
{
"ee": 0,
"rr": 36,
"hh": 0,
"jj": 0,
"ll": 0,
"ññ": 0,
"rr": 0
}
],
"rererere": 20.17
},
"iuiyuiuy": {
"rrr": {"id": 36},
"qq": 000000,
"qq": {"RR": "PRUEBA"}
},
"re": 111111,
"Id": 23434,
"rr": {"tr": {
"ee": "2053-09-10",
"ww": "2050-09-10"
}},
"ww": {
"ww": {
"TT": {
"EE": {"id": 1},
"QQ": {"nombre": "PRUEBA"},
"RR": RR
},
"QQ": {
"EE": {"WW": ""},
"RR": {
"qq": {"ww": "PRUEBA"},
"ww": {
"ww": 3,
"ee": "TT"
},
"rr": RR
}
}
},
"ee": [
{"55": {
"66": "",
"77": ""
}},
{"77": {
"uu": "",
"ii": ""
}}
]
}
},
"ii": 0
}}
Incluso, he visto que algunas veces vienen JSON embebidos dentro de los tags.