JSON 学习 ╰半夏微凉° 2022-05-22 23:18 191阅读 0赞 JavaScript Object Notation,JS 对象标记,是一种轻量级的数据交换格式。 [JSON 标准][JSON] # JSON 介绍 # ## 简介 ## JSON 采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 JSON 是 Douglas Crockford 在2001年开始推广使用的数据格式,在2005年-2006年正式成为主流的数据格式。 ## 语法 ## 在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型: * 对象表示为键值对 * 数据由逗号分隔 * 花括号保存对象 * 方括号保存数组 ### JSON 与 JS 对象的关系 ### JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。 var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的 var json = '{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串,本质是一个字符串 ### JSON 和 JS 对象互转 ### // 对象转换为 JSON 字符串,使用 JSON.stringify() 方法 var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}' // JSON 转换为对象,使用 JSON.parse() 方法 var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'} ### 重点:特殊字符处理 ### json 结构里使用的标示符有:冒号:、双引号”“、大括号\{\}、方括号\[\]、逗号, 标准使用时,并没有什么问题。但如果键值是 textarea 输入的内容时,就有可能会带来特殊字符,此时就需要额外处理了,否则 JSON.parse() 时报错 `Uncaught SyntaxError: Invalid or unexpected token`。 ### 常见的特殊处理的转义字符 ### `\a 响铃(BEL)、\b 退格(BS)、\e 科学计数法、\f 换页(FF)、\n 换行(LF)、\r 回车(CR)、\t 水平制表(HT)、\v 垂直制表(VT)、\\ 反斜杠、\" 双引号字符、\0 空字符(NULL)` ### 解决 ### 根据需要添加处理项。 /** * JSON 字符串特殊字符处理 * * @param s * @return */ public static String string2Json(String s) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); switch (c) { case '\"': sb.append("\\\""); break; case '\\': sb.append("\\\\"); break; case '/': sb.append("\\/"); break; case '\b': sb.append("\\b"); break; case '\f': sb.append("\\f"); break; case '\n': sb.append("\\n"); break; case '\r': sb.append("\\r"); break; case '\t': sb.append("\\t"); break; default: sb.append(c); break; } } return sb.toString(); } # JSON API # ## FastJSON、Gson和Jackson性能对比 ## Jackson:[源代码][Link 1],基于 Java 语言的开源 JSON 格式解析工具。 Gson:Google 解析Json的一个开源框架。 FastJSON:阿里巴巴开发的一个 Java 编写的 JSON 处理器。开源,使用Apache License 2.0协议开源。 <table> <thead> <tr> <th>-</th> <th>Jackson</th> <th align="center">Gson</th> <th align="right">FastJSON</th> </tr> </thead> <tbody> <tr> <td>研发</td> <td>Spring MVC 内置</td> <td align="center">Google</td> <td align="right">阿里巴巴</td> </tr> <tr> <td>开源</td> <td>是</td> <td align="center">是</td> <td align="right">是</td> </tr> </tbody> </table> ### 参考 ### [FastJSON、Gson和Jackson性能对比][FastJSON_Gson_Jackson] [fastjson这么快老外为啥还是热衷 jackson?][fastjson_ jackson] [JSON]: http://json.org/ [Link 1]: https://github.com/FasterXML/jackson [FastJSON_Gson_Jackson]: https://blog.csdn.net/accountwcx/article/details/50252657 [fastjson_ jackson]: https://www.zhihu.com/question/44199956
相关 JSON学习 1.JSON 语法是 JavaScript 对象表示语法的子集。 l 数据在名称/值对中 l 数据由逗号分隔 l 花括号保存对象 你的名字/ 2023年10月16日 21:36/ 0 赞/ 31 阅读
相关 json学习 一、json转对象 import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson. 川长思鸟来/ 2023年05月31日 12:12/ 0 赞/ 12 阅读
相关 JSON 学习 JSON 总结内容 一、JSON 的定义 二、格式 三、在 JavaScript 中的 JSON 1. 一时失言乱红尘/ 2022年10月09日 02:57/ 0 赞/ 141 阅读
相关 JSON学习 1.JSON 语法是 JavaScript 对象表示语法的子集。 l 数据在名称/值对中 l 数据由逗号分隔 l 花括号保存对 灰太狼/ 2022年06月17日 13:26/ 0 赞/ 156 阅读
相关 JSON 学习 JavaScript Object Notation,JS 对象标记,是一种轻量级的数据交换格式。 [JSON 标准][JSON] JSON 介绍 简介 JS ╰半夏微凉°/ 2022年05月22日 23:18/ 0 赞/ 192 阅读
相关 JSON学习 JSON学习 [JSON][]([JavaScript][] Object Notation,JS对象简谱)是一种轻量级的数据交换格式。它基于 [ECMAScript][ 你的名字/ 2022年05月14日 18:34/ 0 赞/ 612 阅读
相关 json学习 [JSON字符串解析][JSON] [json在前后端数据交互中的应用][json] [Ajax+Json应用和实现省市联动][Ajax_Json] [JSON]: Dear 丶/ 2022年05月03日 08:00/ 0 赞/ 509 阅读
相关 JSON学习 1.JSON 语法是 JavaScript 对象表示语法的子集。 l 数据在名称/值对中 l 数据由逗号分隔 l 花括号保存对象 l 方括号保存数组 水深无声/ 2022年02月12日 13:45/ 0 赞/ 200 阅读
相关 JSON学习 文章目录 JSON介绍 概念 JSON使用 语法 JSON介绍 > [JSON官网][JSON] 概念 JSON 雨点打透心脏的1/2处/ 2021年09月29日 01:10/ 0 赞/ 255 阅读
还没有评论,来说两句吧...