• 03-04-2020, 09:46:26
    #1
    ÇÖZÜM
    $encoded = json_encode($data, JSON_NUMERIC_CHECK);[B][/B]


    php de json a çevirirken kullanılan ek parametre işimi çözdü

    ------------

    Google Maps APIsini kullanarak sitemdeki firmaları harita üzerinde listelemek istiyorum manuel olarak yaptığımda sıkıntı yok fakat sql den çekince apinin istediği kod yapısı ile sql den gelen farklı . Fark tırnak işaretleri onu nasıl ayarlayabilirim?

    İstediği Yapı:
    coordinates: {
    lat: 36.984785924414844,
    lng: 35.33886955935169
    },
    content: "Adana"
    Benim çektiğim veriyi json a php ile çevirdiğim yapı. (Sql de veriler farklı olduğu için php ile işleyip array i json formatına dönüştürüyorum.)

      {
    "coordinates": {
    "lat": "36.984785924414844",
    "lng": "35.33886955935169"
    },
    "content": "Adana"
    },
    Görüldüğü gibi fazladan tırnak işaretleri var ve o yüzden de sıkıntı oluyor bunu nasıl aşabilirim acaba?

    PHP ile yaptığım işlem

    $array = array();
    $iller = $db->query("SELECT * FROM iller", PDO::FETCH_ASSOC);
    if($iller->rowCount()){
    foreach ($iller as $key => $il) {
    $array[]= array(
    'coordinates' => array('lat'=> $il['il_lat'], 'lng' => $il['il_lng']),
    'content' => $il['il_adi']
    );
    }
    }
    
    $array = json_encode($array);
  • 03-04-2020, 09:52:55
    #2
    1. seçenek olarak
    $array = array(
    'coordinates' => array('lat'=> $il['il_lat'], 'lng' => $il['il_lng']),
    'content' => $il['il_adi']
    );
    2. seçenek baştan 1 sonran 2 karakter silerek deneyebilirsin (ne kadar mantıklı bilmiyorum)
  • 03-04-2020, 09:55:50
    #3
    Üyeliği durduruldu
    PhYtOnX adlı üyeden alıntı: mesajı görüntüle
    Google Maps APIsini kullanarak sitemdeki firmaları harita üzerinde listelemek istiyorum manuel olarak yaptığımda sıkıntı yok fakat sql den çekince apinin istediği kod yapısı ile sql den gelen farklı . Fark tırnak işaretleri onu nasıl ayarlayabilirim?

    İstediği Yapı:
    coordinates: {
    lat: 36.984785924414844,
    lng: 35.33886955935169
    },
    content: "Adana"
    Benim çektiğim veriyi json a php ile çevirdiğim yapı. (Sql de veriler farklı olduğu için php ile işleyip array i json formatına dönüştürüyorum.)

    {
    "coordinates": {
    "lat": "36.984785924414844",
    "lng": "35.33886955935169"
    },
    "content": "Adana"
    },
    Görüldüğü gibi fazladan tırnak işaretleri var ve o yüzden de sıkıntı oluyor bunu nasıl aşabilirim acaba?

    PHP ile yaptığım işlem

    $array = array();
    $iller = $db->query("SELECT * FROM iller", PDO::FETCH_ASSOC);
    if($iller->rowCount()){
    foreach ($iller as $key => $il) {
    $array[]= array(
    'coordinates' => array('lat'=> $il['il_lat'], 'lng' => $il['il_lng']),
    'content' => $il['il_adi']
    );
    }
    }
    
    $array = json_encode($array);
    Çektiğin json değerlerini
    let response = jQuery.parseJSON(data);
    olarak alıp veritabanına gönderebilir misin?
  • 03-04-2020, 09:56:09
    #4
    alperkilickaya adlı üyeden alıntı: mesajı görüntüle
    1. seçenek olarak
    $array = array(
    'coordinates' => array('lat'=> $il['il_lat'], 'lng' => $il['il_lng']),
    'content' => $il['il_adi']
    );
    2. seçenek baştan 1 sonran 2 karakter silerek deneyebilirsin (ne kadar mantıklı bilmiyorum)
    1. de benim yaptığımdan farkli bir kod yok hocam aynı kod
    2. onu denedim olmadı sıkıntı oluştu.



    vidoix adlı üyeden alıntı: mesajı görüntüle
    Çektiğin json değerlerini
    let response = jQuery.parseJSON(data);
    olarak alıp veritabanına gönderebilir misin?
    Nasıl yanı hocam tam anlamadım. Sqlden çektiğim veriyi neden geri sql e yollayayım ki
  • 03-04-2020, 10:10:32
    #5
    hocam soyle ki istedigin ilk 2 yapi arasinda bir fark yok fazladan tirnak dedigin seyler aslinda json parse edilmis veya edilmemis hali onlar birbirine esittir aslinda

    $array = array($json);
    return json_encode($array);

    olarak dener misin
  • 03-04-2020, 10:16:55
    #6
    asiminnesli adlı üyeden alıntı: mesajı görüntüle
    hocam soyle ki istedigin ilk 2 yapi arasinda bir fark yok fazladan tirnak dedigin seyler aslinda json parse edilmis veya edilmemis hali onlar birbirine esittir aslinda

    $array = array($json);
    return json_encode($array);

    olarak dener misin
    Sıkıntı rakamlarda olan tırnaklar hocam api o şekilde kabul etmiyor. Bende şu şekilde çözdüm.

            for(var i=0;i<markers.length;i++){
    AddMarker(
    {
    coordinates: {lat: Number(markers[i].coordinates.lat), lng: Number(markers[i].coordinates.lng) },
    content: markers[i].content
    }
    );
            }
    Gönderdiğim json yapısını for ile döndürüp tekrardan oluşturdum.
  • 03-04-2020, 10:36:26
    #8
    Databasede veri türleri aşağıdaki şekilde mi? Yok sa string mi?
    `lat` FLOAT( 10, 6 ) NOT NULL ,* `lng` FLOAT( 10, 6 ) NOT NULL ,

    eğer veri türleri doğruysa
    $array = json_encode($array , JSON_NUMERIC_CHECK);
    ile deneyin
  • 03-04-2020, 10:39:54
    #9
    SoSRiQuO adlı üyeden alıntı: mesajı görüntüle
    Databasede veri türleri aşağıdaki şekilde mi? Yok sa string mi?
    `lat` FLOAT( 10, 6 ) NOT NULL ,* `lng` FLOAT( 10, 6 ) NOT NULL ,
    varchar hocam



    $encoded = json_encode($data, JSON_NUMERIC_CHECK);
    şu kod işimi gördü hocam teşekkürler