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