আমি একটি কাস্টম REST এপিআই ডেমো লিখছি; এখন এটি আমার ডেমোতে নম্বর এবং স্ট্রিংগুলি ফিরিয়ে দিতে পারে, তবে আমি চাই যে এটি অন্য আরএসটি এপিআইয়ের মতো একটি জেএসওএন বস্তুটি ফিরিয়ে দেবে।
আমার ডেমোতে, আমি কার্জ সহ ম্যাজেন্টো 2 এপিআই (যেমন গ্রাহকের তথ্য পান: HTTP: //localhost/index.php/rest/V1/customers/1 ) কল করি এবং এটি একটি জেএসএন স্ট্রিং ফেরত দেয়:
"{\" আইডি \ ": 1, group" গ্রুপ_আইডি \ ": 1, default" ডিফল্ট_বিলিং \ ": \" 1 \ ", created" নির্মিত_ট at ": 2016" 2016-12-13 14: 57: 30 \ " , \ "আপডেট_এটি \": \ "2016-12-13 15:20:19,", created "তৈরি_ইন \": \ "ডিফল্ট স্টোর দেখুন \", email "ইমেল \": 75 "75358050@qq.com \ ", \" FIRSTNAME \ ": \" azol \ ", \" LASTNAME \ ": \" তরুণ \ ", \" store_id \ ": 1, \" website_id \ ": 1, \" ঠিকানাগুলি \ ": [{ \ "ID \": 1, \ "গ্রাহক \": 1, \ "অঞ্চল \": {\ "region_code \": \ "শিরোণামে \", \ "অঞ্চল \": \ "অরাদের \", \ "region_id \ ": 279}, \" region_id \ ": 279, \" country_id \ ": \" রিটার্নিং \ ", \" রাস্তায় \ ": [\" এবিসি \ "], \" টেলিফোন \ ": \" 111 \ ", \" পোস্টকোড \ ": \"1111 \ ", \" শহর \ ": \" Def \ ", \" FIRSTNAME \ ": \" azol \ ", \" LASTNAME \ ": \" তরুণ \ ", \" default_billing \ ": সত্য}], \ "disable_auto_group_change \": 0} "
প্রতিক্রিয়াটি একটি JSON স্ট্রিং, তবে সমস্ত কীগুলির মধ্যে একটি স্ল্যাশ রয়েছে। আমি জানি আমি এর সাথে স্ল্যাশ সরিয়ে ফেলতে পারি str_replace
তবে এটি একটি বোকা উপায়। কীগুলির মধ্যে স্ল্যাশ ছাড়াই কোনও JSON অবজেক্ট ফেরত দেওয়ার কোনও অন্য উপায় নেই?
************ আপডেট ২০১ 2016.১২.২7 ************
আমি আমার পরীক্ষার কোডটি এখানে আটকিয়েছি:
$method = 'GET';
$url = 'http://localhost/index.php/rest/V1/customers/1';
$data = [
'oauth_consumer_key' => $this::consumerKey,
'oauth_nonce' => md5(uniqid(rand(), true)),
'oauth_signature_method' => 'HMAC-SHA1',
'oauth_timestamp' => time(),
'oauth_token' => $this::accessToken,
'oauth_version' => '1.0',
];
$data['oauth_signature'] = $this->sign($method, $url, $data, $this::consumerSecret, $this::accessTokenSecret);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $url,
CURLOPT_HTTPHEADER => [
'Authorization: OAuth ' . http_build_query($data, '', ','),
'Content-Type: application/json'
],
]);
$result = curl_exec($curl);
curl_close($curl);
// this code has slash still
//return stripslashes("hi i\" azol");
// has slashes still
//return stripcslashes("{\"id\":1,\"group_id\":1,\"default_billing\":\"1\",\"created_at\":\"2016-12-13 14:57:30\",\"updated_at\":\"2016-12-13 15:20:19\",\"created_in\":\"Default Store View\",\"email\":\"75358050@qq.com\",\"firstname\":\"azol\",\"lastname\":\"young\",\"store_id\":1,\"website_id\":1,\"addresses\":[{\"id\":1,\"customer_id\":1,\"region\":{\"region_code\":\"AR\",\"region\":\"Arad\",\"region_id\":279},\"region_id\":279,\"country_id\":\"RO\",\"street\":[\"abc\"],\"telephone\":\"111\",\"postcode\":\"1111\",\"city\":\"def\",\"firstname\":\"azol\",\"lastname\":\"young\",\"default_billing\":true}],\"disable_auto_group_change\":0}");
// has slashes still
//return json_encode(json_decode($result), JSON_UNESCAPED_SLASHES);
// this code will throw and expcetion:
// Undefined property: *****\*****\Model\Mycustom::$_response
//return $this->_response->representJson(json_encode($data));
return $result;
$json_string = stripslashes($result)
এবংreturn json_decode($json_string, true);
return json_encode($result, JSON_UNESCAPED_SLASHES);
?