CI 묻고 답하기

제목 db 결과를 계층적인 json으로 재형성하는 방법?
카테고리 CI 2, 3
글쓴이 마카바 작성시각 2017/02/27 12:04:04
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 17816   RSS

db에서 얻어온 결과를 계층적(?)인 json으로 재구성해서 response를 보내고 싶습니다.

{id: 1,

title: 'hello',

user_attributes: {

     id: 123,

    nickname: nick

}

}

지금까지는 for문을 써서 새 어레이에 담고 어레이 안에 어레이에 푸시를 하고 등등

그런 좀 더러운 방법을 썼는데 

코드가 깔끔하지 않고 

자주 반복되다 보니 불편합니다..

 

php에서는 저런 것을 쉽게 하는 방법이 없는걸까요? 

composer 패키지라던가.. 추천 방법이 있다면 알려주세요 

감사합니다 !

 

 다음글 (fpdf 에러) pdf 변환 에러가 납니다. (1)
 이전글 multi_upload 오류 (2)

댓글

kaido / 2017/02/27 12:34:47 / 추천 0
echo "<pre>";
print_r($json);
echo "</pre>";

 

보이긴 깔끔한데 코드 연동이 잘 될진 모르겠네요. 

한대승(불의회상) / 2017/02/27 12:42:39 / 추천 0

음.. json_encode() 함수 옵션중 JSON_UNESCAPED_UNICODE, JSON_PRETTY_PRINT 을 사용 하시면 됩니다.

http://php.net/manual/en/function.json-encode.php

마카바 / 2017/02/27 13:07:24 / 추천 0

엇 제 설명이 부족했던 것 같습니다. 

그냥 json을 내보내는 것이 아니라 

$result = $query->result();

했을 때 이렇게 평면적인 object가 나옵니다.

{id: 1,

title: 'hello',

user_id: 123,

nickname: nick

}

그런데 이걸 

{id: 1,

title: 'hello',

user_attributes: {

     id: 123,

    nickname: nick

}

}

이렇게 json 안에 json을 넣고 싶은건데요 

복잡한 json객체를 다루는 더 좋은 방법이 없나해서요 ㅠ

에반스 / 2017/02/27 22:28:38 / 추천 1

Laravel Eloquent ORM 같은 걸 사용하셔서 relationship 을 설정해 놓으면 원하시는데로 데이터를 가져올 수 있습니다.

엘로퀀트를 코드이그나이터에 접목하는 방법은 아래 링크를 참고하세요.

https://bappa.info/2016/08/01/use-eloquent-orm-in-a-codeigniter-3-project/

마카바 / 2017/02/28 01:16:25 / 추천 0

모두 답변 감사합니다 :)

일단은 또 for문을 돌려서 적용을 했는데 

쿼리 빌더에서 result(); 호출할때 class를 파라미터로 주면 커스터마이징할 수 있다는 공식문서 보고

그거 한번 해보려고 합니다

감사해요~