json으로 인코딩 된 문자열이 내 DB 필드 중 하나에 있습니다.FosRestBundle에서 json 인코딩 된 문자열을 json 개체로 변환합니다.
[{ "이름": "자동차", "가격": "10"}]
내가 JSON 형식으로 DB-값을 반환 할 FosRestBundle을 사용하고 있는데 위의 문자열이 반환됩니다 -로 문자열 - 여기까지는 특별한 것이 없습니다.)
어떻게이 문자열을 변환하여 Json 객체가 반환 될 수 있습니까?
json으로 인코딩 된 문자열이 내 DB 필드 중 하나에 있습니다.FosRestBundle에서 json 인코딩 된 문자열을 json 개체로 변환합니다.
[{ "이름": "자동차", "가격": "10"}]
내가 JSON 형식으로 DB-값을 반환 할 FosRestBundle을 사용하고 있는데 위의 문자열이 반환됩니다 -로 문자열 - 여기까지는 특별한 것이 없습니다.)
어떻게이 문자열을 변환하여 Json 객체가 반환 될 수 있습니까?
작동합니다 마지막으로 나는 해결책을 찾아 냈다.
/**
* @var string
*
* @ORM\Column(name="options", type="string", nullable=true)
*/
private $options;
"옵션"json으로 인코딩 된 문자열을 포함 :
내 법인이 포함되어 있습니다. 그래서 JMS Serilizer Annotation @Accessor으로 시도하고이 특정 게터 썼다 :
/**
* Get optionsAsArray
*
* @return array
*/
public function getOptionsAsArray()
{
return (array)json_decode($this->options, true);
}
아직도 오류 "문자열 변환 배열"을 가지고 있습니다. 그래서 해결책은 다른 주석 인
@type을 추가하고 JMSSerializer는 정형 된 JSON을 반환했습니다. 내가 json_decode 시도하지만 결과 객체 또는 배열 변수의 (내용 to0 문자열로 반환됩니다
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\Type;
/* ... */
/**
* @var string
*
* @ORM\Column(name="options", type="string", nullable=true)
* @Accessor(getter="getOptionsAsArray")
* @Type("array")
*/
private $options;
이 문자열을 stdClass 또는 연관 배열 json_decode으로 디코딩 할 수 있습니다. 이게 너가 찾고있는거야?
편집 :이
public function myAction()
{
// do stuff
$string = '[{"name":"car","price":"10"}]';
$array = json_decode($string, true);
/* array is like
[
0 => [
'name' => string(3) "car"
'price' => string(2) "10"
]
]
*/
return $array;
}
내가 예상 그냥 "배열",된다
이
은 법인 모양을하는 것입니다 json_object로 변환 된 배열 값 – Chris하지만 "json_object"는 아무 의미도 없습니다. JSON 객체로 json 표기법으로 포맷 된 문자열을 말합니다. – AlixB