网站开发公司广告文案,织梦 视频网站源码,网站公司建设,织梦网站后台密码忘记了怎么做目录
一、JSON概述
二、JSON对象语法
三、JSON序列化方法
四、JSON与XML比较
五、Java对象与Json对象的转换
六、Js解析服务器发送过来的JSON字符串
七、$.getJSON() 一、JSON概述 JSON简介:JSON的全称为JavaScript Object Nation(JavaScript 对象表示语法)#xff0c;…目录
一、JSON概述
二、JSON对象语法
三、JSON序列化方法
四、JSON与XML比较
五、Java对象与Json对象的转换
六、Js解析服务器发送过来的JSON字符串
七、$.getJSON() 一、JSON概述 JSON简介:JSON的全称为JavaScript Object Nation(JavaScript 对象表示语法)基于 ECMAScript存放的是的类似于键值对本质上来说是javascript的数据类型是一种轻量级的数据交互格式简单来说呢json就是一种在各个编程语言中流通的数据格式负责不同编程语言中的数据传递和交互。 JSON是用字符串来表示Javascript对象例如可以在Servlet中发送一个JSON格式的字符串给客户端JavascriptJavascript可以执行这个字符串得到一个Javascript对象。 二、JSON对象语法
JSON 语法 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 var person {name:zhangSan,age:18, sex:male}; 注意: key要在双引号中,不能使用单引号 字符串必须使用双引号表示不能使用单引号 JSON值 数字整数或浮点数 字符串在双引号中 逻辑值true 或 false 数组在方括号中 对象在花括号中 null
三、JSON序列化方法
在ES5中引用了JSON全局对象该对象有两个常用的方法
1. parse方法解析JSON字符串转回对应的JavaScript类型
JSON.parse(text[, reviver])
参数 text:要被解析成 JavaScript 值的JSON字符串。 reviver 可选:转换器如果传入该参数 (函数)可以用来修改解析生成的原始值调用时机在 parse 函数返回之前。 返回值
Object 类型对应给定 JSON 文本的对象/值。
异常
若传入的字符串不符合 JSON 规范则会抛出 SyntaxError 异常。
2. stringify方法将JavaScript类型转成对应的JSON字符串
JSON.stringify(value[, replacer [, space]]) 参数 value:将要序列化成 一个 JSON 字符串的值。 replacer 可选:如果该参数是一个函数则在序列化过程中被序列化的值的每个属性都会经过该函数的转换和处理如果该参数是一个数组则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中如果该参数为 null 或者未提供则对象所有的属性都会被序列化。 space 可选:指定缩进用的空白字符串用于美化输出pretty-print如果参数是个数字它代表有多少的空格上限为 10。该值若小于 1则意味着没有空格如果该参数为字符串当字符串长度超过 10 个字母取其前 10 个字母该字符串将被作为空格如果该参数没有提供或者为 null将没有空格。 返回值
一个表示给定值的 JSON 字符串。
异常 当在循环引用时会抛出异常TypeError (cyclic object value)循环对象值 当尝试去转换 BigInt 类型的值会抛出TypeError (BigInt value cant be serialized in JSON)BigInt 值不能 JSON 序列化.
四、JSON与XML比较 可读性XML胜出 解码难度JSON本身就是JS对象主场作战所以简单很多 流行度XML已经流行好多年但在AJAX领域JSON更受欢迎。
五、Java对象与Json对象的转换
fastjson是阿里巴巴的开源JSON解析库它可以解析JSON格式的字符串支持将Java Bean序列化为JSON字符串也可以从JSON字符串反序列化到JavaBean。
fastjson优点速度快、使用广泛、使用简单、功能完备、测试完备之前爆了很多漏洞现在使用fastjson至少升级到1.2.60版本
使用fastjson
在项目中导入fastjson的jar
fastjson的使用主要是三个对象 JSON JSONObject JSONArray
JSONArray和JSONObject继承JSON
1. JSON对象
JSON这个类主要用于转换 将Java对象序列化为JSON字符串 将JSON字符串反序列化为Java对象 T parseObject(String text, ClassT clazz) //把json转换为一个java对象
JSONObject parseObject(String text) // 把json转换为一个JSONObject对象
ListT parseArray(String text, ClassT clazz) //把json转换为一个List集合
JSONArray parseArray(String text) //把json转换为一个JSONArray对象
String toJSONString(Object object) //把一个java对象转换为json格式的字符串
2. JSONObject
JSON对象(JSONObject)中的数据都是以key-value形式出现所以它实现了Map接口
使用起来也很简单跟使用Map就没多大的区别因为它底层实际上就是操作Map)常用的方法 3. JSONArray
JSONArray则是JSON数组JSON数组对象中存储的是一个个JSON对象所以类中的方法主要用于直接操作JSON对象 六、Js解析服务器发送过来的JSON字符串
1. 服务器发送过来JSON字符串后客户端需要对其进行解析。这时客户端需要使用eval()方法对JSON字符串进行执行但要注意eval()方法在执行JSON时必须把JSON字符串使用一对圆括号括起来。
var json {\name\:\zhangSan\, \age\:\18\, \sex\:\male\};
var person eval(( json ));
alert(person.name , person.age , person.sex);
2. 我们也可以使用JQuery的parseJSON()函数来对json字符串进行解析:
var json {\name\:\zhangSan\, \age\:\18\, \sex\:\male\};
var obj $.parseJSON(json);
alert(person.name , person.age , person.sex);
七、$.getJSON()
在JQuery中除了可以将定义好的对象进行输出以外,还可以发送JSON格式的数据到服务器,或者接收从服务器返回的JSON格式数据.这时通常需要使用JQuery提供的$.getJSON()方法,异步发送请求到服务器,并以JSON格式封装客户端与服务器之间传递的数据,具体语法如下:
$.getJSON(url,data,success(result,status,xhr));