Json

1、json: javascript  object  notationjs对象符号),是一种数据格式,不是编程语言,语法形式和js一样

 

2、数据格式:

 

1、整体结构

 

        String json1 = {"name" : "Jack","sex" : "男"}

 

        String json2 = [{"name" : "Jack","sex" : "男"},{"name" : "Vincent","sex": "男"}]

   2、JSON对象------左花括号({ )开头,右花括号(})结尾,一个键值对为一个属性

        Json对象结构:{key1:value1,key2:value2...}

                a)、key的数据类型:字符串

                b)、value的数据类型:字符串、数值、null、json数组[]、json对象{}


3、json数组:

json数组结构:[value1,value2......]

               1)、value的数据类型:字符串、数值、null、json数组[]、json对象{}

4、语法规则:

        1)、数据在名称/值中,为一个键值对,表示的是对象的属性

        2)、除了最后一个属性或对象,每个属性,每个对象都必须用逗号(,)分隔

        3)、花括号({})保存对象,一对花括号表示一个对象

        4)、方括号([])保存数组,一对方括号表示一个数组
5、JSON.stringify()

        使用JSON.stringify()把一个js对象序列化为一个json字符串,然后保存在jsonText中
            var book={
                title:"javaScript",
                year:2011,
            };
            var jsonText=JSON.stringify(book);
        jsonText中的字符串是
            {title:"javaScript",year:2011,}
        在序列化js对象时,所有的空格,缩进和undefined都会被跳过,结果中最终都是有效的json数据类型的属性

JSON.parse()
        将json字符串直接传递给JSON.parse()就可以得到相应的js值
        如果传给JSON.parse()的字符串不是有效的JSON,该方法会报错
        var bookcopy=JSON.parse(jsonText);

toJSON
        toJSON() 方法可以将 Date 对象转换为字符串,并格式化为 JSON 数据格式。
        返回字符串的 Date 对象,并格式化为 JSON 数据:
            var d=new Date();
            var n=d.toJSON();
        n 输出结果:
            2018-01-15T12:11:54.651Z
        JSON中的用法:
        var book={
            "title":"JavaScript",
            toJSON:function(){
                return this.title;
            };
        };
        var jsonText=JSON.stringify(book);
6、json_encode(),json_decode()

json_encode():对变量进行json转码,

$book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
$json = json_encode($book);
echo $json;

  结果:

{"a":"xiyouji","b":"sanguo","c":"shuihu","d":"hongloumeng"}

 json_decode(): 对JSON数据进行解码,转换为PHP变量

  • 语法:json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
  • 注意:1、$json 为待解码的数据,必须为utf8编码的数据;

      2、$assoc 值为TRUE时返回数组,FALSE时返回对象;

      3、$depth 为递归深度;

      4、$option 二进制掩码,目前只支持 JSON_BIGINT_AS_STRING;

      5、一般只用前面两个参数,如果要数据类型的数据要加一个参数true

$book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
        $json = json_encode($book);
        
        $array = json_decode($json,TRUE);
        $obj = json_decode($json);
        var_dump($array);
        var_dump($obj);

  结果:

array(4) { ["a"]=> string(7) "xiyouji" ["b"]=> string(6) "sanguo" ["c"]=> string(6) "shuihu" ["d"]=> string(11) "hongloumeng" }
object(stdClass)#2 (4) { ["a"]=> string(7) "xiyouji" ["b"]=> string(6) "sanguo" ["c"]=> string(6) "shuihu" ["d"]=> string(11) "hongloumeng" } 

  

 




 

posted @ 2019-02-21 09:50  诸城布拉德皮特  阅读(129)  评论(0编辑  收藏  举报