Ada posting oleh andyrusterholz at g-m-a-i-l dot c-o-mpada halaman tersebut yang juga dapat menangani array bersarang yang kompleks (jika itu yang Anda maksud).
Sial, homie, Anda langsung menjawabnya =). Saya senang dengan pertanyaan mudah =)
Calvin Froedge
2
Saya memiliki kode ini sementara ($ row = mysql_fetch_assoc ($ query_insert)) {$ control = array ('regione' => $ row ["regione"], 'totale' => $ row ["prezzi"]); } print (json_encode (% control)); tapi retun {"regione": "Puglia", "totale": "5.15"} bukan [{..}, {..}]
Mimmo
2
Tambahkan 1 untuk referensi lemon. :-)
larangan geoengineering
Saya melakukan itu tetapi respons yang saya dapatkan menggunakan fungsi var_dumb adalah sebagai berikut. Bagaimana saya bisa menyingkirkan string (59)? string (59) "[{" result ":" success "}, {" message ":" Data diperbarui! "}]"
Maaf, tetapi jika saya ingin {"nome_array": [{"foo": "bar"}, {"foo": "baz"}]} ??
Mimmo
41
Sederhana: Cukup buat array PHP (bersarang) dan panggil json_encodedi atasnya. Array numerik diterjemahkan ke dalam daftar JSON ( []), array asosiatif dan objek PHP diterjemahkan menjadi objek ( {}). Contoh:
Maaf, tetapi jika saya ingin {"nome_array": [{"foo": "bar"}, {"foo": "baz"}]} ??
Mimmo
2
Baca posting saya lagi. Jika Anda menginginkan sesuatu untuk diterjemahkan menjadi objek JSON, buatlah array asosiatif dalam PHP (di mana kuncinya adalah string). Jika Anda ingin menerjemahkannya ke dalam daftar JSON, buatlah array sederhana (dengan kunci integer implisit). Nilai dari setiap elemen array pada gilirannya dapat berupa array, yang merupakan apa yang Anda inginkan.
tdammers
Terima kasih, ini menjawab pertanyaan saya juga.
Shawn Wernig
Saya melakukan itu tetapi respons yang saya dapatkan menggunakan fungsi var_dumb adalah sebagai berikut. Bagaimana saya bisa menyingkirkan string (59)? string (59) "[{" result ":" success "}, {" message ":" Data diperbarui! "}]"
James Smith
13
Cara terbaik yang harus Anda lakukan setiap kali membuat json di php adalah dengan pertama-tama mengonversi nilai dalam array ASSOCIATIVE.
Setelah itu cukup cukup encode menggunakan json_encode($associativeArray). Saya pikir itu adalah cara terbaik untuk membuat json di php karena setiap kali kita mengambil kueri hasil sql di php sebagian besar waktu kita mendapat nilai menggunakan fetch_assocfungsi, yang juga mengembalikan satu array asosiatif.
Begitulah cara saya dapat melakukan dengan bantuan solusi yang diberikan oleh @tdammers di bawah ini. Baris berikut akan ditempatkan di dalam foreach loop.
Cukup mengetik satu baris ini akan memberi Anda json array,
echo json_encode($array);
Biasanya Anda gunakan json_encodeuntuk membaca data dari aplikasi iOS atau Android. jadi pastikan Anda tidak menggemakan hal lain selain json array yang akurat.
Saya membuat kelas jsonOBJ mentah dan sederhana untuk digunakan untuk kode saya. PHP tidak termasuk fungsi json seperti JavaScript / Node do. Anda harus mengulang secara berbeda, tetapi mungkin bisa membantu.
<?php
// define a JSON Object classclass jsonOBJ {private $_arr;private $_arrName;function __construct($arrName){
$this->_arrName = $arrName;
$this->_arr[$this->_arrName]= array();}function toArray(){return $this->_arr;}function toString(){return json_encode($this->_arr);}function push($newObjectElement){
$this->_arr[$this->_arrName][]= $newObjectElement;// array[$key]=$val;}functionadd($key,$val){
$this->_arr[$this->_arrName][]= array($key=>$val);}}// create an instance of the object
$jsonObj =new jsonOBJ("locations");// add items using one of two methods
$jsonObj->push(json_decode("{\"location\":\"TestLoc1\"}",true));// from a JSON String
$jsonObj->push(json_decode("{\"location\":\"TestLoc2\"}",true));
$jsonObj->add("location","TestLoc3");// from key:val pairs
echo "<pre>". print_r($jsonObj->toArray(),1)."</pre>";
echo "<br />". $jsonObj->toString();?>
// return a JSON Object (jsonOBJ) from the rowsfunctionParseRowsAsJSONObject($arrName, $rowRS){
$jsonArr =new jsonOBJ($arrName);// name of the json array
$rows = mysqli_num_rows($rowRS);if($rows >0){while($rows >0){
$rd = mysqli_fetch_assoc($rowRS);
$jsonArr->push($rd);
$rows--;}
mysqli_free_result($rowRS);}return $jsonArr->toArray();}
Jawaban:
Jeruk lemon yang mudah dicampuri: http://www.php.net/manual/en/function.json-encode.php
Ada posting oleh
andyrusterholz at g-m-a-i-l dot c-o-m
pada halaman tersebut yang juga dapat menangani array bersarang yang kompleks (jika itu yang Anda maksud).sumber
Gunakan PHP asli
json_encode
, seperti ini:Pembaruan : Untuk menjawab pertanyaan Anda di komentar. Anda melakukannya seperti ini:
sumber
Sederhana: Cukup buat array PHP (bersarang) dan panggil
json_encode
di atasnya. Array numerik diterjemahkan ke dalam daftar JSON ([]
), array asosiatif dan objek PHP diterjemahkan menjadi objek ({}
). Contoh:Memberi anda:
sumber
Cara terbaik yang harus Anda lakukan setiap kali membuat json di php adalah dengan pertama-tama mengonversi nilai dalam array ASSOCIATIVE.
Setelah itu cukup cukup encode menggunakan
json_encode($associativeArray)
. Saya pikir itu adalah cara terbaik untuk membuat json di php karena setiap kali kita mengambil kueri hasil sql di php sebagian besar waktu kita mendapat nilai menggunakanfetch_assoc
fungsi, yang juga mengembalikan satu array asosiatif.... dll.
Setelah itu.
sumber
juga untuk array Anda dapat menggunakan penjelasan singkat:
sumber
Begitulah cara saya dapat melakukan dengan bantuan solusi yang diberikan oleh @tdammers di bawah ini. Baris berikut akan ditempatkan di dalam foreach loop.
Dan kemudian mengkodekan array dengan fungsi enkode json
sumber
Cukup mengetik satu baris ini akan memberi Anda json array,
echo json_encode($array);
Biasanya Anda gunakan
json_encode
untuk membaca data dari aplikasi iOS atau Android. jadi pastikan Anda tidak menggemakan hal lain selain json array yang akurat.sumber
sumber
sumber
Saya membuat kelas jsonOBJ mentah dan sederhana untuk digunakan untuk kode saya. PHP tidak termasuk fungsi json seperti JavaScript / Node do. Anda harus mengulang secara berbeda, tetapi mungkin bisa membantu.
Akan menghasilkan:
Untuk beralih, konversikan ke objek normal:
Kemudian:
Output:
TestLoc1
TestLoc2
TestLoc3
Akses langsung:
Contoh praktis:
sumber