English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP 사용하여 JSON 데이터 포맷화하는 예제

本文实例讲述了PHP自定义函数格式化json数据的方法。分享给大家供大家参考,具体如下:

<?php
  /**
   * Formats a JSON string for pretty printing
   *
   * @param string $json The JSON to make pretty
   * @param bool $html Insert nonbreaking spaces and <br />s for tabs and linebreaks
   * @return string The prettified output
   */
$arr = array("ret"=>0,"data"=>array('a' => 1, 'b' => "呐喊教程", 'c' => 3, 'd' => 4, 'e' => 5));
$json = json_encode($arr);
function _format_json($json, $html = false) {
    $tabcount = 0;
    $result = '';
    $inquote = false;
    $ignorenext = false;
    if ($html) {
      $tab = "   ";
      $newline = "<br/>";
    } else {
      $tab = "\t";
      $newline = "\n";
    }
    for($i = 0; $i < strlen($json); $i++) {
      $char = $json[$i];
      if ($ignorenext) {
        $result .= $char;
        $ignorenext = false;
      } else {
        switch($char) {
          case '{':
            $tabcount++;
            $result .= $char . $newline . str_repeat($tab, $tabcount);
            break;
          case '}':
            $tabcount--;
            $result = trim($result) . $newline . str_repeat($tab, $tabcount) . $char;
            break;
          case ',':
            $result .= $char . $newline . str_repeat($tab, $tabcount);
            break;
          case '"':
            $inquote = !$inquote;
            $result .= $char;
            break;
          case '\\':
            if ($inquote) $ignorenext = true;
            $result .= $char;
            break;
          default:
            $result .= $char;
        }
      }
    }
    return $result;
  }
echo _format_json($json);
/*
{
  "ret": 0,
  "data": {
    "a": 1,
    "b": "\u811a\u672c\u4e4b\u5bb6"
    "c": 3,
    "d": 4,
    "e": 5
  }
}
**/
?>

PS: 여기서 몇 가지 실용적인 json 온라인 도구를 추천해 드립니다.

온라인 JSON 코드 검사, 검사, 개선, 포맷화 도구:
http://tools.jb51.net/code/json

JSON 온라인 포맷화 도구:
http://tools.jb51.net/code/jsonformat

온라인 XML/JSON 간相互 변환 도구:
http://tools.jb51.net/code/xmljson

json 코드 온라인 포맷화/개선/압축/편집/변환 도구:
http://tools.jb51.net/code/jsoncodeformat

C 언어 스타일/HTML/CSS/json 코드 포맷화 및 개선 도구:
http://tools.jb51.net/code/ccode_html_css_json

PHP와 관련된 더 많은 내용에 대해 관심이 있는 독자는 본 사이트의 특辑을 확인할 수 있습니다: 《PHP에서 json 형식 데이터 작업 기술 요약》、《PHP가 XML 파일을 처리하는 기술 요약》、《PHP 기본 문법 기초 가이드》、《PHP 배열(Array) 처리 기술 전체 가이드》、《php 문자열(string) 사용 요약》、《php+mysql 데이터베이스 작업 기초 가이드 및 php 일반 데이터베이스 작업 기술 요약

본 문서가 PHP 프로그램 설계에 도움이 되길 바랍니다.

성명: 본 문서의 내용은 인터넷에서 가져왔으며, 저작권자는 본인이며, 인터넷 사용자가 자발적으로 기여하고 업로드한 내용으로, 본 사이트는 소유권을 가지지 않으며, 인공 편집 처리를 하지 않았으며, 관련 법적 책임도 부담하지 않습니다. 저작권 문제가 있음을 발견하시면 notice#w로 이메일을 보내 주시기 바랍니다.3codebox.com에 (이메일 작성 시 #을 @으로 변경하십시오) 신고하시고 관련 증거를 제공하시면, 사실이 확인되면 본 사이트는 즉시 위반 내용을 삭제합니다.

당신이 좋아할 만한 것