http://localhost/project1/index.php

//AJAX region
$(function(){
	$.ajax({
		type : 'GET',
		url : 'https://jsonplaceholder.typicode.com/posts/1',
		success : function(data){
			console.log('success \n', data);
		},
		error : function(data){
			console.log('error', data);
		}
	});
});//AJAX region
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Está cargando datos fácilmente desde http: //localhost/project1/json.php
consola: ingrese la descripción de la imagen aquí

Los datos son una cadena, si uso $ .parseJSON (datos) o JSON.parse (datos) obtengo el siguiente error ... ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Quiero datos como objeto JSON en tiempo real, para poder acceder a cada propiedad y valor.

0
Amin 22 feb. 2018 a las 18:33

2 respuestas

La mejor respuesta

Observación 1: parseJSON innecesario

No es necesario llamar a parseJSON. Utilice la propiedad dataType de $.ajax para cargar sus datos directamente en Formato JSON:

$.ajax({
    type : 'GET',
    dataType: 'json', // here
    url : 'http://localhost/project1/region.php',
    success : function(data) {
        // data is already a JS object :)
        console.log('success \n', data);
    },
    error : function(data){
        console.log('error', data);
    }
});

Observación 2: JSON incorrecto

El código anterior seguirá arrojando el mismo error, debido a

símbolo inesperado ,

Se refiere a la coma final después de todos los últimos elementos de su objeto y sus hijos. Elimina esa coma y no habrá más errores.

Por ejemplo:

"State1" : {
    "City 1",
    "City 2",
    "City 3",
}

NO debe haber una coma después de "City 3". Lo mismo ocurre con otros estados, y también con el objeto "country2" completo.

Hay otro error: sus objetos de Estados son matrices , pero entonces escribe como objetos . Cambie los corchetes por corchetes para "State1" y "State2".

2
Mario Cianciolo 22 feb. 2018 a las 15:46

El objeto json que está devolviendo no es json inválido, para los objetos de estado, debe convertirlos en matrices. entonces:

"State1": ["City1", "City2", "City3"]

Cuando el analizador analiza este objeto, espera un segundo valor por ciudad como "Ciudad1": "Segundo valor" ... ya que no hay un segundo valor para su ruptura.

1
besh 22 feb. 2018 a las 15:39