• 13-04-2020, 20:44:23
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba,
    JSON konununda hakim değilim. Resimdeki yapıda JSON formatı oluşturmak istiyorum. "deliveries" bölümlerini istediğim gibi oluşturamadım. İstediğim gibi olmadı. Yardımcı olur musunuz?




    Kodlarım bu şekilde: Sadece deliveries kısımlarını yapamadım.



    $ogrenciler=array();
    $ogrenciler[0][1]="5351100000";
    $ogrenciler[0][2]="Merhaba Ahmet Bey bu bir deneme mesajıdır.";
    $ogrenciler[1][1]="5352200000";
    $ogrenciler[1][2]="Merhaba Mehmet Bey bu bir deneme mesajıdır.";

    $jData=array();
    $jData["data"]=array();
    $jData["data"]["global_options"]=array(
    "header"=>"REKLAMLAR",
    "message_format"=>0,
    "timeout"=>48,
    "gsm_isUnique"=>0
    );


    $jData["data"]["deliveries"]=array();
    $jData["data"]["deliveries"]["message"]=array();

    for ($i=0;$i<=1;$i++)
    {


    $delivery=array();

    $delivery["recipients"]=array();

    $delivery["recipients"]["gsms"]=array();
    $delivery["recipients"]["gsms"][]=$ogrenciler[$i][1];
    array_push($jData["data"]["deliveries"],$delivery);

    $mesajlar["message"]=array();
    $mesajlar["message"]=base64_encode($ogrenciler[$i][2]);

    array_push($jData["data"]["deliveries"],$mesajlar);


    }

    echo $jData=json_encode($jData);
  • 13-04-2020, 20:50:44
    #2
    Bunun aynısı benimde başıma gelmişti. muhtemelen asp.net ile servis hazırlamış birisine gönderiyorsunuz bunu.

    PHP'de aynı keyi kullanarak array oluşturamıyoruz. PHP'de recipients'i oluştururuz ve altında 0,1,2,3 diye arrayler döner.

    Bir yerde yaptım ama aradım bulamadım. Google da şöyle bir araştırır mısınız mutlaka bulursunuz ben bulmuştum çünkü bi yolunu.

    "array key name multi value"


    Ayrıca recipients bölümüne kadar okumadan yaptığım için aşağıdakini hazırlamıştım. Onuda vereyim içimde kaldı

    <?php
    $json = array();
    
    $json = array(
        "data"=>array(
            "global_options" => array(
                "track_id" => "1234",
                "header" => "REKLAMLAR",
                "...." => "...."
            ),
            "deliveries" => array(
                "recipients" => array(
                    "gsms" => array(
                        "123123123"
                    ),
                    "message" => "Merhaba Ahmet Bey"
                )
            )
        )
        
    );
  • 13-04-2020, 21:09:29
    #3
    fskgrup adlı üyeden alıntı: mesajı görüntüle
    Bunun aynısı benimde başıma gelmişti. muhtemelen asp.net ile servis hazırlamış birisine gönderiyorsunuz bunu.

    PHP'de aynı keyi kullanarak array oluşturamıyoruz. PHP'de recipients'i oluştururuz ve altında 0,1,2,3 diye arrayler döner.

    Bir yerde yaptım ama aradım bulamadım. Google da şöyle bir araştırır mısınız mutlaka bulursunuz ben bulmuştum çünkü bi yolunu.

    "array key name multi value"


    Ayrıca recipients bölümüne kadar okumadan yaptığım için aşağıdakini hazırlamıştım. Onuda vereyim içimde kaldı

    <?php
    $json = array();
    
    $json = array(
    "data"=>array(
    "global_options" => array(
    "track_id" => "1234",
    "header" => "REKLAMLAR",
    "...." => "...."
    ),
    "deliveries" => array(
    "recipients" => array(
    "gsms" => array(
    "123123123"
    ),
    "message" => "Merhaba Ahmet Bey"
    )
    )
    )
    
    );


    Eyvallah index kullanarak deneyeyim en iyisi. Bir keresinde bu şekilde yapmıştım.

    Düzeltme:

    Çok sağol indexleme ile oldu. Aslında benzer kodları geçen sene de yazmıştım ama bir an akıl tutulması yaşadım. Çözümü aşağıda.


    for ($i=0;$i<2;$i++)
    {

    $jData["data"]["deliveries"][$i]=array(
    "message"=> $ogrenciler[$i][2]
    );

    $jData["data"]["deliveries"][$i]["recipients"]=array(
    "gsms"=> $ogrenciler[$i][1]
    );

    }