public function evaluate(Json $json, $expression) { if ($this->evaluationMode === 'javascript') { $expression = str_replace('->', '.', $expression); } try { return $json->read($expression, $this->accessor); } catch (\Exception $e) { throw new \Exception("Failed to evaluate expression '{$expression}'"); } }
public function test_should_read_valid_expression() { $this->given($accessor = PropertyAccess::createPropertyAccessor(), $json = new TestedClass('{"foo":"bar"}'))->when($result = $json->read('foo', $accessor))->string($result)->isEqualTo('bar'); }