Heim > Backend-Entwicklung > PHP-Tutorial > Methoden zum Formatieren (Verschönern) von PHP-JSON-Daten

Methoden zum Formatieren (Verschönern) von PHP-JSON-Daten

angryTom
Freigeben: 2023-04-07 17:12:02
nach vorne
6899 Leute haben es durchsucht

Methoden zum Formatieren (Verschönern) von PHP-JSON-Daten

一、使用 json_encode 输出

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<?php

header(&#39;content-type:application/json;charset=utf8&#39;);

$arr = array(

    &#39;status&#39; => true,

    &#39;errMsg&#39; => &#39;&#39;,

    &#39;member&#39; =>array(

        array(

            &#39;name&#39; => &#39;李&#39;,

            &#39;gender&#39; => &#39;男&#39;

        ),

        array(

            &#39;name&#39; => &#39;赵&#39;,

            &#39;gender&#39; => &#39;女&#39;

        )

    )

);

   

echo json_encode($arr);

?>

Nach dem Login kopieren

(推荐学习:PHP视频教程

输出:

1

{"status":true,"errMsg":"","member":[{"name":"\u674e","gender":"\u7537"},{"name":"\u8d75","gender":"\u5973"}]}

Nach dem Login kopieren

二、使用 jsonFormat 输出

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

<?php

   

/** Json数据格式化

* @param  Mixed  $data   数据

* @param  String $indent 缩进字符,默认4个空格

* @return JSON

*/

function jsonFormat($data, $indent=null){

   

    // 对数组中每个元素递归进行urlencode操作,保护中文字符

    array_walk_recursive($data, &#39;jsonFormatProtect&#39;);

   

    // json encode

    $data = json_encode($data);

   

    // 将urlencode的内容进行urldecode

    $data = urldecode($data);

   

    // 缩进处理

    $ret = &#39;&#39;;

    $pos = 0;

    $length = strlen($data);

    $indent = isset($indent)? $indent : &#39;    &#39;;

    $newline = "\n";

    $prevchar = &#39;&#39;;

    $outofquotes = true;

   

    for($i=0; $i<=$length; $i++){

   

        $char = substr($data, $i, 1);

   

        if($char==&#39;"&#39; && $prevchar!=&#39;\\&#39;){

            $outofquotes = !$outofquotes;

        }elseif(($char==&#39;}&#39; || $char==&#39;]&#39;) && $outofquotes){

            $ret .= $newline;

            $pos --;

            for($j=0; $j<$pos; $j++){

                $ret .= $indent;

            }

        }

   

        $ret .= $char;

          

        if(($char==&#39;,&#39; || $char==&#39;{&#39; || $char==&#39;[&#39;) && $outofquotes){

            $ret .= $newline;

            if($char==&#39;{&#39; || $char==&#39;[&#39;){

                $pos ++;

            }

   

            for($j=0; $j<$pos; $j++){

                $ret .= $indent;

            }

        }

   

        $prevchar = $char;

    }

   

    return $ret;

}

   

/** 将数组元素进行urlencode

* @param String $val

*/

function jsonFormatProtect(&$val){

    if($val!==true && $val!==false && $val!==null){

        $val = urlencode($val);

    }

}

   

header(&#39;content-type:application/json;charset=utf8&#39;);

   

$arr = array(

    &#39;status&#39; => true,

    &#39;errMsg&#39; => &#39;&#39;,

    &#39;member&#39; =>array(

        array(

            &#39;name&#39; => &#39;李&#39;,

            &#39;gender&#39; => &#39;男&#39;

        ),

        array(

            &#39;name&#39; => &#39;赵&#39;,

            &#39;gender&#39; => &#39;女&#39;

        )

    )

);

   

echo jsonFormat($arr);

   

?>

Nach dem Login kopieren

输出:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

{

    "status":true,

    "errMsg":"",

    "member":[

        {

            "name":"李",

            "gender":"男"

        },

        {

            "name":"赵",

            "gender":"女"

        }

    ]

}

Nach dem Login kopieren

三、php5.4 以后,json_encode增加了JSON_UNESCAPED_UNICODE , JSON_PRETTY_PRINT 等几个常量参数。使显示中文与格式化更方便。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<?php

header(&#39;content-type:application/json;charset=utf8&#39;);  

$arr = array

    &#39;status&#39; => true, 

    &#39;errMsg&#39; => &#39;&#39;, 

    &#39;member&#39; =>array

        array

            &#39;name&#39; => &#39;李&#39;, 

            &#39;gender&#39; => &#39;男&#39; 

        ), 

        array

            &#39;name&#39; => &#39;赵&#39;, 

            &#39;gender&#39; => &#39;女&#39; 

        

    

);

echo json_encode($arr, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);

Nach dem Login kopieren

输出:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

{

    "status": true,

    "errMsg": "",

    "member": [

        {

            "name": "李",

            "gender": "男"

        },

        {

            "name": "赵",

            "gender": "女"

        }

    ]

}

Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonMethoden zum Formatieren (Verschönern) von PHP-JSON-Daten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
Holen: JSON-Daten übertragen
Aus 1970-01-01 08:00:00
0
0
0
MySQL-Speicher-JSON-Fehler
Aus 1970-01-01 08:00:00
0
0
0
Finden Sie passende Ganzzahlen in JSON.
Aus 1970-01-01 08:00:00
0
0
0
PHP-JSON-Konvertierung
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage