JQuery - Peticion de datos JSON

   
Vista:
Imágen de perfil de Paris

Peticion de datos JSON

Publicado por Paris (1 intervención) el 03/02/2018 07:07:21
Me gustaria como solicitar datos de un archivo JSON desde JQuery pero el archivo tiene esta estructura:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[
 
{
	"Name":"",
	"Birthday":"",
	"Reference":"",
	"SocialMedia":
	[
		"",
		"",
	],
	"Mail":
	[
		"",
		"",
	],
	"Phone":
	[
		"",
		"",
	],
},
 
]

El codigo de Jquery seria algo asi pero no lo tengo aterrizado, es por eso que pido ayuda:

1
2
3
4
5
6
$.getJSON("contacts.json", function(data){
	var items = [];
	$.each(data, function(key, val){
 
	});
});
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de txema

Peticion de datos JSON

Publicado por txema (8 intervenciones) el 04/02/2018 03:47:56
Hola Paris:

Partimos de que la estruttura de tu JSON es incorrecta.
Veamos dónde está mal
1
2
3
4
5
6
7
8
9
10
11
12
[{
    "Name": "",
    "Birthday": "",
    "Reference": "",
    "SocialMedia": ["", "",  //  Mal constrido // sobra esta coma
    ],
    "Mail": ["", "",  //  Mal constrido // sobra esta coma
    ],
    "Phone": ["", "",  //  Mal constrido // sobra esta coma
    ], // sobra esta coma
  }, // sobra esta coma
]
No debe llevar comas [,] antes de las llaves de cierre.

Donde te indico "mal construido" es porque JSON está construido por una colección de pares de nombre/valor. (y siempre con comillas dobles)..

Tratando de entender tu problema y corregido el json, el recorrido con $.getJSON sería:
1
2
3
4
5
6
7
8
9
10
$.getJSON("contacts.json", function(data){
	for (i=0; i < data.length; i++) {
		var Name = data[i].Name;
		// ...
		for (j=0; j < data[i].SocialMedia.length; j++){
		    var SocialMedia = data[i].SocialMedia[j].SocialMedia;
		// ...
		}
		// ...
});
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Revisar política de publicidad