json总结

来源:互联网 发布:淘宝上的衣服能买吗 编辑:程序博客网 时间:2024/06/14 06:11

所谓JSON(JavaScript Object Notation, JS 对象标记) ,它是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据;类似 XML,但是JSON 比 XML 更小、更快,更易解析。

/************************************************************************* * File Name: json.c * Author:    The answer * Function:  Other         * Mail:      2412799512@qq.com  * Created Time: 2017年07月11日 星期二 14时17分35秒 ************************************************************************/本文总结自《JSON必知必会》JSON(JavaScript Object Notation)的全称是:javascript对象表示法{    "brand":"adidas",        "color":"red",        "price":1222,        "size":9}# 名称--值对    /键值--对 等等.....json中的值对可以是:strng字符串、数字、null、数组或对象;Json中”名称“始终都是在左边,而值对是在右边,中间用冒号:来分隔名称和键值;---------------------------------------------(2) 名称:"animal" or "the animal"都是合法的,而且中间还可以使用单引号: eg: "this's animal":"dog"   --->但是不建议这么的去做,因为这些特殊的字符会影响到 json对象在系统之间的可移植性;为了提高json数据在各平台间的可移植性,最好不要使用 空格和特殊字符; (3) 注意,名称是必须要用双引号,而值不一定,因为json中的值可以有很多种,比如 数字、数组、null、bool、而若用的是字符串,则必须用双引号; (4) 使用{}来表示使之成为一个对象,json中若有多个"名称--值对"的话,应该用","来 将其进行分隔; (5) json错误验证和校验工具: JSON Formatter & Validator,带高亮语法错误提示; JSON Editor Online; JSONLint; (6) 专业术语和概念 字面量:指的是字面意思与其想要表达的意思是完全一致的值。 (7) 计算机中的数据类型:原始数据类型(基础数据类型)和复合数据类型(派生数据类型) (8) json中的数据类型:对象,字符串,数字,数组,null和bool(布尔值) (9) json中的数字可以是:整数、小数、负数、指数 --------------------------------------------- (1) json中对象是可以嵌套使用的,eg: { "Person":{     "name":"lixiaogang",         "heigh": 176,         "head":{         "hair":{                 "color":"light blood",                 "length":"short",                 "style":"A-line"             },             "eyes":"black"             }         } }(2) json中的字符串类型可以是由任意的unicode字符构成;(3) json中有时候"值对"有时候不得不包含着一对"双引号",如:{    "promo":"Say "the dog is best" "  //这时候会报错,编译器读到the前面的双引号就会        //认为Say这个值对已经结束,而后面的是非法,解决方法是使用"\"转业符号;        "promo":"Say \"the dog is best\" "}(4) json中的布尔类型:仅使用小写的字面值 false or true(5) json中的null类型:若想表达某样东西"无",请使用null并且小写,不要使用0(6) json中的数组类型:{    "appleCarton":[        "apple",    //一个数组为每一个"位置"都赋予了一个索引,下标0        "apple",        "apple",    //若吃掉这个apple,为null,但是为0也不会报错,但不建议这么做        "apple",        "apple",        "apple",        "apple",        "apple",        "apple",        "apple"        ]}数组里面还可以再嵌套数组;如:{    "test":[        [            true,            true,            true,            true        ],        [            true,                false,                true,                false,            ]     ]}-------------------------------------------------(1) json中的安全问题    跨站请求伪造 CSRF比如:[    {        "username":"user"    },    {        "password":"passwd"    --->容易被攻击-->    黑客绕过<script>标签    }]解决方案:将数组放到一个对象之中,使之成为一个非法的javascript,          这样就不会被<script>标签加载I.步{    "info":[    {        "username":"user"    },    {        "password":"passwd"    }          ]}II.步    仅使用POST请求获取数据,禁止使用GET;POST and GET是HTTP提供的用于与服务器交换    数据的两种方式;GET用于"请求数据,得到相应";而POST用于"提交数据,得到相应";    结论:避免资源泄露、窃取: 1.不要在JSON中使用顶级数组                               2.不要贪图使用GET来代替POST的便利(2)注入攻击     注入攻击包含许多种形式与格式;它们都是利用系统本身的漏洞来实现的;而CSRF则是利用     信任机制进行的攻击。注入攻击则主要通过向网站注入恶意代码来实现;(3) 跨站脚步攻击    XSS是"注入攻击的一种";---------有关具体的攻击的详细信息和过程,需结合javascript来理解----------
原创粉丝点击