Ich versuche, eine loadrunner-Datei 'js' zu erstellen, um einige Daten von einem json zu erfassen. Die JSON-Datei befindet sich auf einem Web-Server, dies ist nicht das Problem. Ich kann den JSON erfolgreich abrufen. Ich möchte jedoch einen bestimmten Wert aus dem JSON-Text zurückgeben. Ich habe versucht, dies auf einer lokalen HTML-Seite zu tun, wie folgt, aber ich habe immer eine Fehlermeldung erhalten:LoadRunner-Skript zum Erfassen von Json-Daten erstellen
Error is TypeError: Cannot read property 'Location' of undefined
Code:
<!doctype html> <head></head><script>
function getdata()
{
var jsontext = '{"Locations":{"Location":[{"@id":"3649","@latitude":"51.758","@longitude":"-1.576","@country":"England","@zoomLevel":"10","@obsZoomLevel":"5","@type":"Observing Site","@name":"Brize Norton","@geohash":"gcnyknk2h"},{"@id":"3","@latitude":"50.9503","@longitude":"-1.3567","@country":"England","@zoomLevel":"11","@type":"Airport and Heliport","@name":"Southampton Airport","@geohash":"gcp1c5hp4"}]}}';
var stringifiedjson = JSON.stringify(jsontext).replace(/@/g, '_'); //convert to JSON string
var data = JSON.parse(stringifiedjson);
json.innerHTML=data;
try{
var newlocation0 = data.Locations.Location[1]._id;
output.innerHTML=newlocation0;
return;
}
catch(err){
message.innerHTML = "(1)Error is " + err;
}
try{
var newlocation0 = data.Locations.Location[1]._id;
output.innerHTML=newlocation0;
return;
}
catch(err) {
message.innerHTML = message.innerHTML + "(2)Error is " + err;
}
try{
var newlocation0 = data.Locations.Location[0]._id;
output.innerHTML=newlocation0;
return;
}
catch(err) {
message.innerHTML = message.innerHTML + "(3)Error is " + err;
}
}
</script>
<body>
Error Messages:
<p id="message"></p>
<BR><BR>
JSON Input:
<p id="json"></p>
<BR><BR>
Output:
<p id="output"></p>
<button onclick="getdata()">Check</button>
<button onclick="location.reload();">Reload</button>
</body>
Ich habe versucht, verschiedene Kombinationen von Notationen von [0] und [1] aber ich kann keine Ausgabe für den rechten Teil des JSons erhalten.
Warum? Var stringifiedjson = JSON.stringify (jsontext) '? Das wird alle '' 'entkommen lassen und Ihren JSON unparserfähig machen. Wenn Sie danach eine JSON.parse machen, ist die Ausgabe kein JS-Objekt, sondern nur eine Zeichenkette. Ersetzen Sie den Teil' var stringifiedjson = JSON.stringify (jsontext) .replace (/ @/g, '_'); 'nach' var stringifiedjson = jsontext.replace (/ @/g, '_'); ' – Fefux
Ich habe es jetzt funktioniert, danke für deine Hilfe! stringify so wie ich unter dem Eindruck war das war die einzige Möglichkeit, die widerspenstigen "@" in der Json. – jquerynewbie
"LoadRunner", wie in der Performance-Test-Tool LoadRunner? Wenn ja, sind in Elemente zur Behandlung der Korrelation gebaut, die Die Daten, die vom Server an den Client zurückgegeben werden, umfassen alle Arten von Daten in einem HTTP-Datenstrom (oder anderen Protokollen). Dies würde auch JSON-formatierte Daten umfassen. –