반응형
JSON을 프로그램적으로 아름답게 하려면 어떻게 해야 하나요?
당신은 이것이 이 질문의 중복이라고 말할 수 있지만, 원래의 질문에는 대답하지 않았습니다.질문의 중요한 부분은 다음과 같습니다.programmatically
?
php 함수가 있나요?토종인가요, 집에서 만든 건가요?
json_flag()에는 플래그가 있습니다.JSON_PRETTY_PRINT
echo json_encode($data, JSON_PRETTY_PRINT);
지금 같은 질문을 하고 있어요.하지만 당신도 알다시피, 나는 php < 5.4를 가지고 있다.Zend Framework는 Zend_Json::prettyPrint()를 가지고 있다.아주 잘 작동한다.
여러 가지 깊이를 지원하는 비파괴 JSON 미용제를 만들었습니다.
/**
* JSON beautifier
*
* @param string The original JSON string
* @param string Return string
* @param string Tab string
* @return string
*/
function pretty_json($json, $ret= "\n", $ind="\t") {
$beauty_json = '';
$quote_state = FALSE;
$level = 0;
$json_length = strlen($json);
for ($i = 0; $i < $json_length; $i++)
{
$pre = '';
$suf = '';
switch ($json[$i])
{
case '"':
$quote_state = !$quote_state;
break;
case '[':
$level++;
break;
case ']':
$level--;
$pre = $ret;
$pre .= str_repeat($ind, $level);
break;
case '{':
if ($i - 1 >= 0 && $json[$i - 1] != ',')
{
$pre = $ret;
$pre .= str_repeat($ind, $level);
}
$level++;
$suf = $ret;
$suf .= str_repeat($ind, $level);
break;
case ':':
$suf = ' ';
break;
case ',':
if (!$quote_state)
{
$suf = $ret;
$suf .= str_repeat($ind, $level);
}
break;
case '}':
$level--;
case ']':
$pre = $ret;
$pre .= str_repeat($ind, $level);
break;
}
$beauty_json .= $pre.$json[$i].$suf;
}
return $beauty_json;
}
이 간단한 트릭으로 충분했습니다.다른 라이브러리나 기능은 필요 없었습니다.
$json = '{"status":"0","status_translated":"Request successful!","data":"1"}';
$json_beautified = str_replace(array("{", "}", '","'), array("{<br /> ", "<br />}", '",<br /> "'), $json);
결과는 다음과 같습니다.
{
"status":"0",
"status_translated":"Request successful!",
"data":"1"
}
이것은 json code에 한 단계 더 깊게 들어가는 것에 한하여 도움이 되었으면 합니다.
명령줄 사용의 경우 js beautifier를 사용할 수 있습니다.외부 사이트와 데이터를 공유할 필요가 없습니다.
https://github.com/vivekpathak/tools/blob/master/jb/jb
언급URL : https://stackoverflow.com/questions/6672656/how-can-i-beautify-json-programmatically
반응형
'programing' 카테고리의 다른 글
JSON.stringify() 출력의 늘 값을 숨깁니다. (0) | 2023.04.01 |
---|---|
재료-ui 자동완료 경고 자동완료에 제공된 값이 잘못되었습니다. (0) | 2023.04.01 |
Mongodb에서 단일 문서의 크기를 얻는 방법은 무엇입니까? (0) | 2023.04.01 |
Django 앱의 Access-Control-Allow-Origin (0) | 2023.04.01 |
로컬에서 값을 읽습니다.vs 2017 Azure Function 개발에서 settings.json을 소개합니다. (0) | 2023.04.01 |