php로 만든 json 파일 인식을 못합니다. 채택완료

Copy
<?php
include_once('./_common.php');
header('Content-Type:application/json; charset=utf-8');

$json_array = array();

$sql = "select * from g5_write_notice where wr_id =".$_GET['no'];
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++) {

$json_array["notice"]["title"] = $row["wr_subject"];

}        

$json_array = json_encode($json_array, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);

echo $json_array;
?>

이런식으로 만들어서 json 파싱을 하게 했는데 

json 값을 보면 

{"notice":{"title":"공지사항"}}

 

이런식으로 잘 나옵니다. 근데 실제로는 파싱하는쪽에서는 값을 못 불러 옵니다.

 

근데 위에 소스를 다 지우고 

{"notice":{"title":"공지사항"}} 

걍 이렇게만 넣으면 제대로 인식을 합니다.

 

뭐가 문제 일까요? 어차피 나오는값은 똑같은데 왜 php를 쓰면 안되고, 걍 텍스트만 넣으면 되죠?

 

미칠거 같아요 ㅜㅜ

 

 

 

답변 5개

채택된 답변
+20 포인트

끝내는 스스로 해결했습니다.

fopen 으로 새로 걍 json 파일 생성해서 불어오게끔 하니깐 되네요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

php부분에서 마지막에

Copy
echo json_encode($json_array);

script부분에서 ajax의 결과같을 result로 받아 온다면,

Copy
var temp = JSON.parse(result);

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

불러오는곳에서는 어떻게 불러오고 있으신건가요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

그건 잘 모르겠어요. 그쪽에서는 저 양식으로만 json으로 만들면 된다고 하더라고요
자바스크립트를 써서 가져가는거 같은데

댓글을 작성하려면 로그인이 필요합니다.

$json_array = json_encode($json_array);

이렇게 하면 문제가 생기나요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

일단은 제목만 가져오지만 나중에 wr_link1 값도 가져오려면 JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES 이거 2개 다 붙여야 할거 같아요
추가 파라미터 없이 진행해 보세요.

그리고
for ($i=0; $row = sql_fetch_array($result); $i++) {
$json_array["notice"]["title"] = $row["wr_subject"];
}

이 코드도 이상하네요. 보통은
for ($i=0; $row = sql_fetch_array($result); $i++) {
$json_array["notice"]["title"][]= $row["wr_subject"];
}
이런 식으로 합니다.

댓글을 작성하려면 로그인이 필요합니다.

JSON_UNESCAPED_UNICODE 이거 하나만 써보세요

그리고 제이쿼리 아작스 쓸때는 꼭 datatype을 확인 하세요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

JSON_UNESCAPED_UNICODE 이거 하나만 써도 안되요;;
결과값 배열로 볼수있나요

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고