cURL Anfrage - Ergebnis filtern

Meteorologe

Ensign
Registriert
Aug. 2006
Beiträge
253
Hallo,

ich versuche, eine Bahn Störungshomepage zu erstellen, da ich aktuell den Überblick verloren habe, welche Strecken in meinem Gebiet nun eigentlich frei sind und welche nicht.

Ein passendes php Script habe ich schon, allerdings hänge ich gerade an zwei Dingen, bei denen ich nicht zurecht komme und eure Hilfe benötige.

Ich versuche mit curl, eine Anfrage zu stellen. Diese funktioniert auch wie gewollt.
Nur leider enthält das Ergebnis der curl Anfrage auch teilweise nicht relevante Ergebnisse , die ich gerne raus filtern würde.
Zum Beispiel wird ausgegeben:

Code:
  "svcResL": [
    {
      "meth": "HimGeoPos",
      "err": "OK",
      "res": {
        "common": {
          "locL": [
            {
              "lid": "A=1@O=Farchant (MFCH)@X=11114982@Y=47531596@U=80@L=8001961@",
              "type": "S",
              "name": "Farchant (MFCH)",
              "extId": "8001961",
              "state": "F",
              "crd": {
                "x": 11114982,
                "y": 47531596,
                "z": 0,
                "type": "WGS84",
                "layerX": 0,
                "crdSysX": 0
              },
              "pCls": 1291
            },
            {
              "lid": "A=1@O=Garmisch-Partenkirchen (MGP)@X=11097049@Y=47491199@U=80@L=8002187@",
              "type": "S",
              "name": "Garmisch-Partenkirchen (MGP)",
              "extId": "8002187",
              "state": "F",
              "crd": {
                "x": 11097049,
                "y": 47491199,
                "type": "WGS84",
                "layerX": 0,
                "crdSysX": 0
              },
              "pCls": 267
            },
            {
              "lid": "A=1@O=München Kanal (MAKN)@X=11488780@Y=48146881@U=80@L=9902539@",
              "type": "S",
              "name": "München Kanal (MAKN)",
              "extId": "9902539",
              "state": "F",
              "crd": {
                "x": 11488780,
                "y": 48146881,
                "z": 0,
                "type": "WGS84",
                "layerX": 0,
                "crdSysX": 0
              },
              "pCls": 1035
            },

Mein Wunsch wäre nun, dass nur noch Ergebnisse ausgegeben werden, die beim Punkt -> "res" -> "common" -> "locL" -> "crd" einen Eintrag ""z": 0 haben. Bei dem oberen ist "z": 0 vorhanden, beim zweiten nicht.
Leider finde ich keine Möglichkeit. Hoffentlich/Bestimmt funktioniert das relativ einfach, nur ich finde es leider nicht heraus.


Nun hätte ich anschließend noch eine etwas eigenartige (wahrscheinlich schwierig umzusetzen (?)) Frage.

Die sich in dem Beispiel am Anfang befindliche Störung
"lid": "A=1@O=Farchant (MFCH)@X=11114982@Y=47531596@U=80@L=8001961@",
Würde ich gerne als ganzes Paket an das Ende meiner Homepage / php-script setzen.
Kann ich das ganze "Ausgabepaket" von der am Anfang befindlichen Störung nehmen und an das Ende packen?

Danke und Viele Grüße
Simon
 
Ich habe nicht wirklich verstanden mit welcher Sprache oder Tool du filtern willst, aber ich persönlich würde das json Ergebnis was vom curl request kommt dann mit jq filtern.
Aber wahrscheinlich verstehe ich nicht genau was du wann machen willst
 
  • Gefällt mir
Reaktionen: Meteorologe
jq ist so ziemlich der standard.

deutlich moderner und vor allem interaktiv sind fx und ramda - Ich denke letzteres hilft dir am ehesten und ist am einsteigerfreundlichsten. bei jq hab ich damals schon wirklich oft geflucht :)
In der ramda readme sollten alle infos sein die du brauchst.
 
  • Gefällt mir
Reaktionen: Meteorologe
Danke für die Hilfe. Ich werde mich mal eben dran setzen und alles umsetzen :)
 
  • Gefällt mir
Reaktionen: madmax2010
Zurück
Oben