当前位置: 首页 > news >正文

肇庆市网站建设微信软文案例

肇庆市网站建设,微信软文案例,湘潭天元建设集团有限公司董事长,公司企业简介图片♥课程链接:【狂神说Java】一小时掌握JSON_哔哩哔哩_bilibili配套的当然还要学习ajax不管是前端后端,感觉这部分内容是必须的,不然真的做项目的时候云里雾里。总体json的内容不多,具体就:1. 列表、对象等语法格式2. js…
♥课程链接:【狂神说Java】一小时掌握JSON_哔哩哔哩_bilibili
配套的当然还要学习ajax
不管是前端后端,感觉这部分内容是必须的,不然真的做项目的时候云里雾里。
总体json的内容不多,具体就:
1. 列表、对象等语法格式
2. json和js对象的相互转换:
JSON.parse() : JSON → js对象
JSON.stringify(): js对象→JSON
3. 在contoller层结合一些工具使用

一、Json

1.1 什么是Json

JSON (JavaScript Object Notation, JS对象标记) 是一种轻量级的数据交换格式。

采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

作用:JSON:前后端分离中,数据交互的王者!

1.2 语法格式

  • 对象表示为键值对

  • 数据由逗号分隔(最后一个数据后边没有逗号)

  • 花括号保存对象

  • 方括号保存数组

JSON键值对是用来保存JS对象的一种方式,和JS对象的写法大同小异,用双引号""包裹键名,用冒号: 分割键与值,如下所示

{"name": "Boat"}
{"age": "18"}
{"sex": "女"}

1.3 JSON与JS对象

JSON与JS对象的关系:JSON是JS对象的字符串表示法,它使用文本表示一个JS对象的信息,本质是一个字符串

var obj = {a: 'Hello', b: 'world'}; // 这是一个对象,注意键名也可以用引号包裹
var json = {"a": "Hello", "b": "world"}; // 这是一个JSON字符串,本质是一个字符串

JSON和JS对象互换

要实现JSON字符串转换为JS对象,使用JSON.parse()方法

var obj = JSON.parse({"a":"Hello", "b":"world"}); //结果是{a: 'Hello', b: 'world'}

要实现JS对象转换为JSON字符串,使用JSON.stringify()方法

var json = JSON.stringify({a: 'Hello', b: 'world'}); //结果是{"a":"Hello", "b":"world"}

可以通过console.log(obj) 和console.log(json) 在前端看一下区别:

所以只要后端 返回这样的字符串,通过JSON.parse()方法 就可以变成一个对象

1.4 结合后端食用

1.4.1 jackson 和 @ResponseBody注解

在controller层,写相应的处理方法,处理其返回值的时候,需要考虑一下,如果正常返回,它会走视图解析器,而json需要返回的是一个字符串,市面上很多第三方jar包可以实现这个功能,例如jackson

  1. 需要先在pom中加入jackson的依赖

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.3</version>
</dependency>
  1. 在controller里的方法前加入注解 @ResponseBody,就可以实现了

@ResponseBody@RequestBody 的区别:
@ResponseBody: 可以将服务器端返回的对象,转换为json对象响应回去(表示该方法的返回的结果直接写入 HTTP 响应正文中,一般在异步获取数据时使用;)
在使用@RequestMapping后,返回值通常解析为跳转路径,加上@Responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。例如,异步获取json数据,加上@Responsebody注解后,就会直接返回json数据。
@RequestBody :一般用来负责接收前台的json数据,把json数据自动封装到pojo中,在Ajax里尝试(将 HTTP 求正文插入方法中,使用适合的HttpMessageConverter将请求体写入某个对象。)
-----------------
参考:详述 @ResponseBody 和 @RequestBody 注解的区别_CG国斌的博客-CSDN博客_**@requestbody和@responsebody的区别?**

1.4.2 基本controller操作,将返回的对象转为json

controller中的代码实现如下:

@RequestMapper("/json1") 
@ResponseBody //该注解可以将服务器端返回的对象,转换成json相应过去
public String json1(){// 需要一个jackson的对象映射器,就是一个类,使用它可以直接将对象转换为json字符串ObjectMapper mapper = new ObjectMapper(); //来自jackson// 创建一个对象User user = new User(name: "小船", age: 18, sex:"女");//将Java对象转换为json对象String str = mapper.writeValueAsString(user);return str; //由于使用了@ResponseBody注解,这里会将str 以json格式的字符串返回,十分方便
}

可以成功运行出来,但是汉字会乱码,

1.4.3 乱码处理

解决办法:给@RequestMapping加一个produces属性,设置编码格式为UTF-8,以及它的返回值类型,顺带精简一下代码:

@RequestMapper("/json1", produces = "application/json;charset=utf-8") //produces:指定相应体返回类型和编码
@ResponseBody 
public String json1(){User user = new User(name: "小船", age: 18, sex:"女");return new ObjectMapper().writeValueAsString(user);}

一劳永逸的办法:在spring中进行配置,但是因为不同时候用的框架也不一样,所以这里就先不写了,放上狂神课里,用springmvc时候的解决办法

1.4.4 升级版controller中的代码(用list传递多个对象)

升级版controller中的代码(用list传递多个对象):

@RequestMapper("/json3") 
@ResponseBody //该注解可以将服务器端返回的对象,转换成json相应过去
public String json3(){List<User> list = new ArrayList<>();User user1 = new User(name: "小船1", age: 18, sex:"女");User user2 = new User(name: "小船2", age: 18, sex:"女");User user3 = new User(name: "小船3", age: 18, sex:"女");User user4 = new User(name: "小船4", age: 18, sex:"女");list.add(user1);list.add(user2);list.add(user3);list.add(user4);return new ObjectMapper().writeValueAsString(list); //直接传递list就行
}

返回的结果就是:

[{"name": "小船1", "age": 18, "sex":"女"},{"name": "小船2", "age": 18, "sex":"女"},{"name": "小船3"," age": 18, "sex":"女"},{"name": "小船4", "age": 18, "sex":"女"}]

可以看出,json的列表是[],不同对象用{}, 不同对象间用逗号分开,最后一个不能加逗号

1.4.5 json格式化工具

json格式化工具:JSON 在线解析 | 菜鸟工具 (runoob.com)

1.4.6 传递时间

传递时间,需要import 一下 Data, 注意是import java.util.Date

Cotroller层代码如下:

@RequestMapper("/json5") 
@ResponseBody 
public String json5(){// 传递data的时候,还是需要考虑格式问题的,不然传给json就是个时间戳ObjectMapper mapper = new ObjectMapper(); // 1. 关闭时间戳mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, state:false);// 2. 时间格式化,自定时间格式对象:SimpleDateFormat sdf = new SimpleDateFormat(pattern:"yyyy-MM-dd HH:mm:ss");// 3. 让mapper指定时间日期格式为simleDateFormatmapper.setDateFormat(sdf);// 写一个日期对象Date date = new Date();return new ObjectMapper().writeValueAsString(date);}

可以把格式化时间的代码,封装成一个工具类,也可以用不同框架的时候,全局配置时间,这儿的,我也就只放狂神课堂的截图了。

http://www.zhongyajixie.com/news/23007.html

相关文章:

  • wordpress 上传图片搜索引擎优化文献
  • 蓬莱市建设局网站考研培训
  • 昆山企业网站建设公司河南seo技术教程
  • 江都区城乡建设局门户网站网络营销策略论文
  • 做返利网站能赚钱么重庆seo小潘大神
  • 做图素材网站 千市场营销实际案例
  • 做照片书的网站市场营销四大基本策略
  • 专做淘宝的网站seo推广优化方案
  • 响应式网站示例网店代运营公司
  • 哪里创建免费个人网站免费seo快速排名系统
  • 私人做网站a培训课程总结
  • 广州营销型网站建设培训站长seo综合查询
  • 已经有了域名怎么做网站全网营销策划公司
  • 易语言做网站客户端厦门seo优化公司
  • app模板下载网站做一个公司网站要多少钱
  • 上海网站制作方法网站建设优化的技巧
  • 微网站建设正规公司黑帽seo联系方式
  • 网站制作长春seo的方法
  • 云一网站建设如何在百度上营销
  • 做网站商铺模板广州专门做seo的公司
  • 创立外包网站如何创建一个平台
  • 怎么用自助网站百度网盘下载app
  • 怎么查询网站备案服务商是哪个免费的关键词优化软件
  • 咨询型网站百度广告联盟app
  • 漯河网站建设全球网站排名前100
  • 正规推广平台百度爱采购优化
  • 网吧装修设计公司优化大师手机版下载
  • 域名备案成功如何做网站百度账号注册中心
  • 上海网站建设设计公司百度网盘app下载安装官方免费版
  • 网站站内优化方法网站快速排名优化哪家好