function testJSON2Obj() { $val = '{"Joe":"Bloggs","Tom":"Jones","My":{"Complicated":"Structure"}}'; $obj = Convert::json2obj($val); $this->assertEquals('Bloggs', $obj->Joe); $this->assertEquals('Jones', $obj->Tom); $this->assertEquals('Structure', $obj->My->Complicated); }
/** * Child classes should call $list = parent::get(); */ public static function get() { $list = parent::get(); $result = self::service()->request('/RestDataObject'); if ($result->getStatusCode() == 200) { $body = Convert::json2obj($result->getBody()); if (isset($body->items)) { foreach ($body->items as $item) { $list->push(new ExternalRestDataObject((array) $item)); } } } return $list; }
/** * @param $id * @return array */ public static function vimeo_video_details($id) { $url = sprintf('http://vimeo.com/api/v2/video/%s.json', $id); $ch = curl_init(); curl_setopt_array($ch, array(CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_TIMEOUT => 30)); $response = Convert::json2obj(curl_exec($ch)); curl_close($ch); $iTime = $response[0]->duration; $iHours = intval($iTime / (60 * 60)); $iMinutes = intval(($iTime - $iHours * 60 * 60) / 60); $iSeconds = $iTime - $iHours * 60 * 60 - $iMinutes * 60; if ($response) { $return = array('title' => $response[0]->title, 'duration' => sprintf("%02d", $iHours) . ':' . sprintf("%02d", $iMinutes) . ':' . sprintf("%02d", $iSeconds)); return $return; } }
public static function youtube_video_details($id) { $url = 'https://www.googleapis.com/youtube/v3/videos?'; $url .= sprintf('key=%s', Config::inst()->get('YoutubeVideo', 'youtube_api_key')); $url .= sprintf('&id=%s', $id); $url .= '&fields=items(snippet(title),contentDetails(duration))'; $url .= '&part=snippet,contentDetails'; $ch = curl_init(); curl_setopt_array($ch, array(CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_BINARYTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_TIMEOUT => 5)); $response = Convert::json2obj(curl_exec($ch)); if ($response) { $snippet = $response->items[0]->snippet; $contentDetails = $response->items[0]->contentDetails; curl_close($ch); $arrDuration = preg_split('/[^0-9]/', $contentDetails->duration); //PT1M26S $iHours = isset($arrDuration[2]) ? $arrDuration[2] : 0; $iMinutes = isset($arrDuration[3]) ? $arrDuration[3] : 0; $iSeconds = isset($arrDuration[4]) ? $arrDuration[4] : 0; $return = array('title' => $snippet->title, 'duration' => sprintf("%02d", $iHours) . ':' . sprintf("%02d", $iMinutes) . ':' . sprintf("%02d", $iSeconds)); return $return; } }
/** * @param QueuedJobDescriptor $jobDescriptor * @param QueuedJob $job */ protected function copyDescriptorToJob($jobDescriptor, $job) { $jobData = null; $messages = null; // switching to php's serialize methods... not sure why this wasn't done from the start! $jobData = @unserialize($jobDescriptor->SavedJobData); $messages = @unserialize($jobDescriptor->SavedJobMessages); if (!$jobData) { // SS's convert:: function doesn't do this detection for us!! if (function_exists('json_decode')) { $jobData = json_decode($jobDescriptor->SavedJobData); $messages = json_decode($jobDescriptor->SavedJobMessages); } else { $jobData = Convert::json2obj($jobDescriptor->SavedJobData); $messages = Convert::json2obj($jobDescriptor->SavedJobMessages); } } $job->setJobData($jobDescriptor->TotalSteps, $jobDescriptor->StepsProcessed, $jobDescriptor->JobStatus == QueuedJob::STATUS_COMPLETE, $jobData, $messages); }
public function testHTTPAcceptAndContentType() { $comment1 = $this->objFromFixture('RestfulServerTest_Comment', 'comment1'); $url = "/api/v1/RestfulServerTest_Comment/" . $comment1->ID; $headers = array('Accept' => 'application/json'); $response = Director::test($url, null, null, 'GET', null, $headers); $this->assertEquals($response->getStatusCode(), 200); // Success $obj = Convert::json2obj($response->getBody()); $this->assertEquals($obj->ID, $comment1->ID); $this->assertEquals($response->getHeader('Content-Type'), 'application/json'); }
function validate($value) { if (!$value) { return true; } $this->params[$this->field->getName()] = $value; $query = http_build_query($this->params); $url = $this->method == 'GET' ? $this->url . '?' . $query : $this->url; // If the url is a relative one, use Director::test() to get the response if (Director::is_relative_url($url)) { $url = Director::makeRelative($url); $postVars = $this->method == 'POST' ? $this->params : null; $response = Director::test($url, $postVars = null, Controller::curr()->getSession(), $this->method); $result = $response->getStatusCode() == 200 ? $response->getBody() : 0; // Otherwise CURL to remote url } else { $ch = curl_init(); if ($this->method == 'POST') { curl_setopt($ch, CURLOPT_POSTFIELDS, $query); } curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, 'ZENVALIDATOR'); $result = curl_exec($ch); curl_close($ch); } // validate result if ($result == '1' || $result == 'true') { if ($this->validator == 'reverse') { return false; } else { return true; } } $isJson = is_string($result) && (is_object(json_decode($result)) || is_array(json_decode($result))) ? true : false; if ($isJson) { $result = Convert::json2obj($result); if (isset($result->success)) { return true; } else { if (isset($result->message)) { $this->setMessage($result->message); } elseif (isset($result->error)) { $this->setMessage($result->error); } } } return false; }
public function receiveChangeset($changes, $deletes, $rels) { Versioned::reading_stage('Stage'); // $changes = $changes ? Convert::json2obj($changes) : array(); // $deletes = $deletes ? Convert::json2obj($deletes) : array(); // $rels = $rels ? Convert::json2obj($rels) : array(); if ($changes) { $all = array_merge($changes, $deletes, $rels); $obj = Convert::array2json($all); $obj = Convert::json2obj($obj); $this->processUpdateData($obj); return $all; } return ''; }
public function searchEvents() { $fields = "?fields=" . implode(',', $this->eventFields); $url = $this->endpoint . $this->eventsSearchPath . $fields; $client = new RestfulService($url, -1); $client = $client->request(); $response = $client->getBody(); $events = Convert::json2obj($response); return $events; }