Dışarıdan çekilen JSON dosyasının içinden nasıl rastgele bir değer yazdırılır?

Katılım
10 Mart 2022
Mesajlar
1.250
Çözümler
48
Merhabalar, konuyu kısaca anlatmama gerekirse:

Elimde bir text.json adlı dosya var ve bunun içinde ki değerleri stringe çevireceğim. (Sanırım mantıken öyle.)
Sonra bu değerler arasında rastgele bir seçim yapıp bunu buton ile html'de bir <span>'in içine yazdırmam gerek. (E6, kütüphanesiz JavaScript ile..)

(Butona tıklandığın da 5 text'ten rastgele bir text seçilerek span etiketine yazdırılacak.)

JSON:
{
    "text_1": "Merhaba",
    "text_2": "Ben",
    "text_3": "Technopattan",
    "text_4": "Recep",
    "text_5": "Baltaş"
}

HTML:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <span id="text"></span>
    <button id="btn">Rastgele Text Getir!</button>
 
</body>
</html>

Teşekkürler!
 
Son düzenleme:
Direkt html ile yapmak pek mümkün değil. PHP kodu eklemeniz gerekir.

PHP:
$json = '{"text1":"Merhaba"}';
$json = json_decode($json, true);
echo $json['text1'];
 
Direkt html ile yapmak pek mümkün değil. PHP kodu eklemeniz gerekir.

PHP:
$json = '{"text1":"Merhaba"}';
$json = json_decode($json, true);
echo $json['text1'];
JavaScript ile yapmam lazım.. Yine de teşekkürler. (Eklemeyi unutmuşum. )
 
Yapılması basit ama JSON dosyasını neden o şekilde yaptınız? Direkt array olarak tanımlarsanız iş kolaylaşıyor. text1-2 gibi numaralandırmanın bir sebebi var mı?
JSON:
[
    "Merhaba",
    "Ben",
    "Technopattan",
    "Recep",
    "Baltaş"
]
 
Kxaan hocanın da dediği gibi direkt array olarak tanımlarsanız işiniz kolaylaşacaktır.
Tamamdır diyelim ki öyle tanımladım fakat o senaryoyu nasıl canlandıracağım hakkında bilgim yok.
Bir fonksiyon oluşturup, math.floor(math.random) kullanarak falan bir şeyler düşündüm fakat beynim yetmedi.



Şurada ki .json'u xhr ile falan çekmeyi denedim derken falan falan baya karıştı.
Mantık hatası var gibi.
 
Ben size birazdan kodu atacağım. Şu an bir işle uğraşıyorum.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…