Php İle Json Decode İşlemi
-
Selamlar,
https://paste.ubuntu.com/p/ChrWxzwKpD/
adresine işlem yaptığım örnek JSON ımı koydum.
Cols altındakiler Kolon Başlıkları, Rows altındaki herbir c değeri her sütünün kayıtları olarak düşünebilirsiniz.
Fakat şöyle bir durum var.
Cols altında Başlık ve Veri Tipi Var o aklımı biraz karıştırdı.
<?php $json = file_get_contents("test.json"); //pastebin de size verdiğim $data = json_decode($json); if (count($data->cols)) { // Open the table echo "<table>"; // Cycle through the array foreach ($data->cols as $cols) { // Output a row echo "<tr>"; echo "<td>$cols->GUN</td>"; echo "<td>$cols->BANKA</td>"; echo "</tr>"; foreach($rows->v as $v_icerik) { echo $v_icerik->1; echo $v_icerik->2; echo $v_icerik->3; } } // Close the table echo "</table>"; }?>
Normalde Yukarıdaki Gibi Yapıyordum ama bunda veriler farklı olunca kaldım.
Nasıl Tabloya dökebilirim? Yardımcı olabilir misiniz?
PLaXToR tarafından 10/Mar/20 01:20 tarihinde düzenlenmiştir -
headers = [] for row in jsnstr['cols']: headers.append(row['label']) rows = [] for record in jsnstr['rows']: row_ = [] for col in record['c']: row_.append(col['v']) rows.append(row_) print(rows)
onumde python acikti pythonda yaptim haci. jsonu jsnstr arrayina aldigni varsay, arrayi gezip once headerlari header a ekliyo. sonra satirlari tek tek rows a ekliyo
-
Hocam php de syntax i başka array e alması başka yani mantık tamam da algoritmasını vermiş gibi oldu ama olmadı :/
-
json dosyani da at bir goreyim, yazayim kodunu.
-
İlk mesajda mevcut hocam tekrar yazayım.
-
<?php $data = file_get_contents('https://pastecode.xyz/view/raw/afc5db5a'); $data = json_decode($data); $table = '<table>' . PHP_EOL . ' <tr>' . PHP_EOL; foreach (array_column($data->cols, 'label') as $title) { $table .= ' <td>' . $title . '</td>' . PHP_EOL; } $table .= ' </tr>' . PHP_EOL; for ($i=0; $i < count($data->rows); $i++) { $table .= ' <tr>' . PHP_EOL; foreach (array_column($data->rows[$i]->c, 'v') as $row) $table .= ' <td>' . $row . '</td>' . PHP_EOL; $table .= ' </tr>' . PHP_EOL; } $table .= '</table>'; echo $table;
-
<?php $data = file_get_contents('https://pastecode.xyz/view/raw/afc5db5a'); $data = json_decode($data); echo '<table>' . PHP_EOL . ' <tr>' . PHP_EOL; foreach (array_column($data->cols, 'label') as $title) { echo ' <td>' . $title . '</td>' . PHP_EOL; } echo ' </tr>' . PHP_EOL; for ($i=0; $i < count($data->rows); $i++) { echo ' <tr>' . PHP_EOL; foreach (array_column($data->rows[$i]->c, 'v') as $row) echo ' <td>' . $row . '</td>' . PHP_EOL; echo ' </tr>' . PHP_EOL; } echo '</table>';
Degiskende tutmadan echo yagmuru versiyonu.
end tarafından 10/Mar/20 02:59 tarihinde düzenlenmiştir -
Teşekkürler ama ikiside çalışmıyor hocam.
Bir de senin yaptığın versiyonda mesela kaç tane "ŞEKERBANK TL HESABI" var nasıl saydırabiliriz?
PLaXToR tarafından 10/Mar/20 03:13 tarihinde düzenlenmiştir -
PLaXToR bunu yazdı
Teşekkürler ama ikiside çalışmıyor.
?
-
Sadece html bu tablo yapısı geliyor, miktarı da doğru değil içerikler de yok hocam buraya ilk denediğini mi yapıştırdın :/.
<table> <tr> </tr> <tr> </tr> <tr> </tr> </table>
-
PLaXToR bunu yazdı
Sadece html bu tablo yapısı geliyor, miktarı da doğru değil içerikler de yok hocam buraya ilk denediğini mi yapıştırdın :/.
Ne gelecekti baska elindeki json yapisi ve contenti bundan ibaretken?
1 baslik keyin var, 2 satirin var iste.
Ilk denedigini mi yapistirdin ne demek ayrica? Bu ne bicim bir uslup yahu.
if ($row === 'ŞEKERBANK TL HESABI') $sbankCt++;
ekleyeceksin saydirmak icin. Hepsinin sayisini istiyorsan da array_count_values kullanirsin.