json değerinin yeri değişiyor
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ış.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
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);
Direkt link değil de curl
ya file_get_contents
ile çekiyorsun değil mi
$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);