Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP JSON Object

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP JSON Object

    Hallo Liebes Forum,

    versuche gerade einem Freund beim erstellen eines JSON Objects zu helfen.
    Leider kennen wir uns beide nicht mit Json aus.

    Uns wurde gesagt, dass es am besten ist Daten Strukturiert als Objekt im Json zu senden.
    Und nicht in flachen Hirarchien als ein ganzes Array.

    Wir konnten leider kein gutes Tutorial finden, dass uns dabei hilft ein strukturiertes Json Objekt zu erzeugen.

    Also als Bsp.

    data{
    user{
    vorname: xyp,
    nachname: blabla,

    adresse{
    strasse: helenenstraße,
    hausnummer: 32,
    Stadt: Musterstadt,
    Ort: Musterhausen,
    }
    }
    }

    }


    Dabei sollen strings als strings, int als int, double als double usw. übergeben werden.
    Könnte vielleicht jemand anhand dieses Beispieles zeigen wie das Json erzeugt wird in PHP?

    Wir sind für jede Hilfe dankbar.


  • #2
    Schau dir mal http://de1.php.net/manual/en/function.json-encode.php an.

    Kommentar


    • #3
      Vielen Dank für deine Antwort.
      Ich habs versucht so zu übernehmen, allerdingst weiß ich nicht ob das so richtig ist. Mein Ergebnis sieht so aus:

      PHP-Code:

      {
          
      "0": {
              
      "vorname""bla",
              
      "nachname""blabla",
              
      "address": {
                  
      "street""Bismarckring ",
                  
      "addressNumber""23"
              
      }
          },
          
      "1": {
              
      "vorname""blub",
              
      "nachname""blubblub",
              
      "address": {
                  
      "street""Bleichstraße",
                  
      "addressNumber""33"
              
      }
          },
          }
      }


      so hab ich es erzeugt:

      $data[] = array('vorname_id' => utf8_encode($row['vorname']),
                  
      'nachname' => utf8_encode($row['name']),
                                    
      'address'=>array(
                                            
      'street'=> utf8_encode($row['address']),
                                          
      'addressNumber' => utf8_encode($row['number'])
                                      )
                              );


      return 
      json_encode($dataJSON_FORCE_OBJECT); 
      Wären das jetzt 2 objekte oder 4 (address?) müssten da nicht eckige Klammern um Objekte sein?
      Ich kenne micht echt null aus mit Json und bin gezwungen meinem Kumpel zu helfen

      Allerdings wird alles als string übergeben obwohl aus der Datenbank int geliefert wird. woran liegt das?

      Kommentar


      • #4
        Eckige klammern sind Arrays, geschwungene sind Objecte.
        Zitat von nikosch
        Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

        Kommentar


        • #5
          Also ist es so richtig?
          Was ist mit der Übergabe von strings und interger?
          Bei mir wird alles als string übergeben. Wie verhindere ich das??

          Kommentar


          • #6
            Ich kenne micht echt null aus mit Json und bin gezwungen meinem Kumpel zu helfen
            Herrjeh dann macht Euch schlau. Es kann doch verdammt noch mal nicht sein, dass hier jeden Tag jemand reinschneit, der ganz wichtig für irgendjemanden was machen muss, aber selbst nicht mal Google bedient bekommt.
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Zitat von asher81 Beitrag anzeigen
              Also ist es so richtig?
              Kommt darauf an. Es wird halt wie schon gesagt wurde in ein Objekt mit den Eigenschaften "0" und "1" statt ein Array verpackt. Kannst du das so gebrauchen ?

              Zitat von asher81 Beitrag anzeigen
              Bei mir wird alles als string übergeben. Wie verhindere ich das??
              Musst du das verhindern? Auch in JS wird der Ausdruck "1" == 1 zu true ausgewertet.

              Kommentar


              • #8
                Musst du das verhindern? Auch in JS wird der Ausdruck "1" == 1 zu true ausgewertet.[/QUOTE]

                Ja, wir sollen die Datentypen der Parameter mit übergeben und nicht alles einfach als string übergeben. Kann man das denn überhaupt? Und wenn ja, wie?

                Kommentar


                • #9
                  Die Datentypen der PHP-Variablen müssen eben passen. Gegebenenfalls typecasten.

                  - http://php.net/manual/en/language.ty...e-juggling.php

                  PHP-Code:
                  <?php

                  $struct 
                  = array(
                      
                  'float'  => 1.1,
                      
                  'int'    => 1,
                      
                  'string' => '1',
                      
                  'array'  => array(123)
                  );

                  ?>

                  <script>

                  var struct = <?=json_encode($structJSON_PRETTY_PRINT)?>;

                  console.log(struct);
                  // Object { float: 1.1, int: 1, string: "1", array: Array[3] }

                  </script>

                  Kommentar

                  Lädt...
                  X