Einen Blob mit json zurückgeben

Ich versuche, einen Ruheservice für meine Android-Anwendung zu erstellen, wo eine externe Datenbank Elemente zurückgibt, die in der lokalen Datenbank der Datenbank gespeichert werden sollen. Ich habe alles, was funktioniert, außer Blobs werden als null zurückgegeben.

Dies ist ein Beispiel für meine Jason-Antwort (Bild- und Thumbnail-Felder sind Blobs)

  • Wie bekomme ich Textbreite, wenn mehrere spannable Einstellung
  • Wie bekomme ich ndk-gdb auf Android?
  • Spring Android: mit RestTemplate mit https und Cookies
  • Einstellen von Android-Bildern aus dem String-Wert
  • Erhalten Sie Tag der Woche von GregorianCalendar
  • Unerwarteter Antwortcode 403 für https://www.googleapis.com/games/v1/players/1123xxxxxx11712506520 und andere Play-Services-Fehler
  • {"id":"2","user_id":"1","name":"testing","type":"bouldering","picture":null,"lat":"36","long":"81","alt":"41932","accuracy":"53","thumbnail":null} 

    Hier ist mein PHP-Skript, um die Daten zurückzugeben.

     <?php require_once('config.php'); $mysqli = new mysqli(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME); $sql = 'select * from spot_main'; $results =$mysqli->query($sql); $spots = array(); //array to parse jason from while($spot = $results->fetch_assoc()){ $spots[] = $spot; } echo json_encode($spots); ?> 

    Wer kennt eine Lösung für dieses Problem? Ich weiß, dass ich das nicht am effizientesten mache (besser, um Bilder im Dateisystem zu speichern), aber ich brauche das zur Arbeit.

  • Android API 21 Werkzeugleiste
  • ViewFlipper vs AdapterViewFlipper
  • "Kein umschließender Instanz vom Typ" -Fehler beim Aufruf von Methode aus einer anderen Klasse in Android
  • Implementieren von Simple SeekBar in Android
  • VPN-Paket-Bypass
  • Ist es möglich, Daten von HTML-Formularen in Android zu bekommen, während mit webView?
  • 3 Solutions collect form web for “Einen Blob mit json zurückgeben”

    Kodiere die Binärdaten als base64, bevor du den JSON generierst.

     $obj->picture = base64_encode($binaryData); 

    Sie können dann in Ihrer Android-Anwendung mit jedem Basis-64-Decoder decodieren. Seit API Level 8 gibt es eine eingebaute Gebrauchsklasse . Ansonsten gibt es viele externe libs, die du für das Ziel von Android 2.1 oder früher verwenden kannst.

    Du musst BLOB zu base64_encode machen

      while($spot = $results->fetch_assoc()){ $spots[] = $spot; } 

    Dann bereite ich eine foreach-Schleife so vor

     foreach($spots as $key=>$value){ $newArrData[$key] = $spots[$key]; $newArrData[$key]['picture'] = base64_encode($spots[$key]['picture']); $newArrData[$key]['thumbnail'] = base64_encode($spots[$key]['thumbnail']); } header('Content-type: application/json'); echo json_encode($newArrData); 

    Es scheint, dass json_encode mit UTF-8 codierten Daten arbeitet. Sie können json_last_error () verwenden , um den Fehler von json_encode zu erkennen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.