Ich versuche, die Ergebnisse einer Abfrage von PHP in ein Javascript-Objekt zu bekommen. Also in der Konsole sehe ich eine Fehlermeldung Uncaught SyntaxError: Unerwartete Token {in JSON auf Position 66. Ich weiß, das ist, weil ich versuche, ein JSON zu lesen, wenn die Variable eine Zeichenfolge ist. Das ist mein Dilemma. Im Folgenden finden Sie die Ergebnisse der Abfrage einer Textspalte thestartgeom genannt, die GeoJSON Objekte (Breitengrad und Längengrad) enthält:Wie String als Json in Javascript ausgeben?
{"type":"Point","coordinates":[40.752067565918,-73.9678421020508]}
{"type":"Point","coordinates":[40.6908912658691,-73.9961242675781]}
{"type":"Point","coordinates":[40.7666969299316,-73.9906158447266]}
Der Grund, warum ich es speichern, wie eine Textspalte ist, weil es mehr als 100.000 Datensätze in der Datenbank sind und i Ich versuche nur die einzelnen Zeilen auszuwählen. Ich weiß, das ist eine Textspalte, aber ich möchte es als ein JSON-Objekt in Javascript lesen, so dass ich Zeile für Zeile gehen und die Breite und Länge (40.342, -73.221) ausgeben kann. Vergib mir, wenn ich jemanden mit meiner Frage beleidige, aber das nervt mich wirklich und SO ist meine letzte Zuflucht.
Mein Ziel ist es, nur die Koordinaten des Objekts in Javascript auszugeben.
Unten ist mein Code und jede Hilfe würde sehr geschätzt werden.
Meine PHP-Datei:
<?php
$connect = pg_connect("host=127.0.0.1 dbname=d106 user=b16 password=cccC") or die("Could not connect: ");
$result = pg_query($connect,"SELECT distinct thestartgeom FROM bike");
if (!$result)
{
echo "no results ";
}
while($row = pg_fetch_array($result))
$coor = $row['thestartgeom'];
echo $coor;
}
pg_close($connect);
?>
Mein HTML/JS:
<html>
<head>
<title>Simple</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$.ajax({
type: "GET",
dataType: "JSON",
url: "getstat.php",
data: {sataVariable: "here is some data send with GET method"},
success: function(data) {
var r = data.responseText;
var j = JSON.parse(r);
var coords = j.coordinates;
document.writeln(coords); // attempting to take the coordinates and store it in a variable
for (i = 0; i < coords.length; i++) {
coords.forEach(function(entry){
// loop through the coordinates and output the lat,lng
var d = document.getElementById("fpcoords");
d.innerHTML = d.innerHTML + "<br>" + "LatLng(" + entry[0] + "," + entry[1] + "));"
});
}
}
});
</script>
</head>
<body>
</body>
</html>
Sie haben drei verschiedene JSON-Strings als Ausgang und es ist für JSON-Antwort nicht gültig. Es muss innerhalb eines Arrays sein, damit JSON gültig ist. – Justinas
Einige sinnvolle Code-Einzug wäre eine gute Idee. Es hilft uns, den Code zu lesen und, was noch wichtiger ist, es hilft Ihnen, Ihren Code zu debuggen. ** [Werfen Sie einen Blick auf einen Kodierungsstandard] (http://www.php-fig.org/psr/psr-2/) zu Ihrem eigenen Vorteil. Sie werden möglicherweise aufgefordert, diesen Code in ein paar Wochen/Monaten zu ändern, und Sie werden mir am Ende danken. – RiggsFolly
Und ich danke Ihnen für das @ RiggsFolly –