v2.5.2
Giriş yap

json değerinin yeri değişiyor

mek
435 defa görüntülendi

Merhaba, Woocommerce REST API ile mağazamın çalışanlarının erişebileceği bir sistem üzerinde çalışıyorum. Doğrudan Wordpress panelini açmak yerine sadece belirlediğim alanlarda çalışabilecekleri bir sistem geliştiriyorum. json kullanarak meta_data içerisinden;

"key" "kargo_takip_no" kısmını;

['meta_data'][7]['value'] basarak kargo takip kodunu alabiliyorum. fakat verinin yeri 7 iken bazen 8 ve 9 olarak değişebiliyor yani sıra kayıyor. Listelediğim zaman örnek olarak: 1 numaralı siparişin takip numarası 321321 ise 2 numaralı siparişin takip numarası aras kargo olarak gözüküyor. bu sorunu nasıl giderebilirim?

İlk görselde "kargo_takip_no" alanının bulunduğu sıra 7

İkinci görselde ise sırası değişmiş ve 8. sıraya kaymış.

Cevap yaz
Cevaplar (4)
mek
1032 gün önce

Hocam test sayfasında kullandığım zaten sizin verdiğiniz örnek. Onun haricinde ek olarak file_gets_contents ile veriye erişiyorum.


$data = file_get_contents('http://localhost/product.php');

$new_json = new stdClass;

$json = json_decode($data, true); // rest apiden gelen data , 2. değeri true yapıyoruz ki array olarak alalım

foreach ($json as $json_data) { // foreach ($json->meta as $json_data) { , foreach ($json->meta_data as $json_data) {
    $new_json->{$json_data['key']} = $json_data['value'];
}

#echo $new_json->kargo_takip_no;
#echo $new_json->kargo_firma;
#echo $new_json->x1;

print_r($new_json);

themonster
1032 gün önce

Direkt link değil de curl ya file_get_contents ile çekiyorsun değil mi

mek
1036 gün önce

Yanıt için teşekkür ederim hocam fakat $data = [restapi] urlini girdikten sonra tamamen patlıyor.

themonster
1036 gün önce

$data = '[
    {
        "id":1,
        "key":"kargo_takip_no",
        "value":"11111"
    },
    {
        "id":2,
        "key":"kargo_firma",
        "value":"xxxxx"
    },
    {
        "id":3,
        "key":"x1",
        "value":"y1"
    }
]';

$new_json = new stdClass;

$json = json_decode($data, true); // rest apiden gelen data , 2. değeri true yapıyoruz ki array olarak alalım

foreach ($json as $json_data) { // foreach ($json->meta as $json_data) { , foreach ($json->meta_data as $json_data) {
    $new_json->{$json_data['key']} = $json_data['value'];
}

#echo $new_json->kargo_takip_no;
#echo $new_json->kargo_firma;
#echo $new_json->x1;

print_r($new_json);