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

上海做网站公司qinmoo域名注册需要什么条件

上海做网站公司qinmoo,域名注册需要什么条件,做的网站浏览的越多越挣钱,网站设计psd1.什么是fastjson2? fastjson2是阿里巴巴开发的一个高性能的Java JSON处理库,它支持将Java对象转换成JSON格式,同时也支持将JSON字符串解析成Java对象。本文将介绍fastjson2的常见用法,包括JSON对象、JSON数组的创建、取值、遍历…

1.什么是fastjson2?

fastjson2是阿里巴巴开发的一个高性能的Java JSON处理库,它支持将Java对象转换成JSON格式,同时也支持将JSON字符串解析成Java对象。本文将介绍fastjson2的常见用法,包括JSON对象、JSON数组的创建、取值、遍历,以及与字符串、Java对象、Map、List的相互转换。

  • 支持JSON/JSONB两种协议,JSONPath 是一等公民。
  • 支持全量解析和部分解析。
  • 支持Java服务端、客户端Android、大数据场景。
  • 支持Kotlin
  • 支持JSON Schema FASTJSON v2 JSONSchema的支持 | fastjson2
  • 支持Android
  • 支持Graal Native-Image

2.代码工程

实验目标

在 Spring Web MVC 中集成 Fastjson2

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>springboot-demo</artifactId><groupId>com.et</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>fastjson2</artifactId><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>2.0.40</version></dependency><dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2-extension-spring5</artifactId><version>2.0.40</version></dependency></dependencies>
</project>

config

使用 FastJsonHttpMessageConverter 来替换 Spring MVC 默认的 HttpMessageConverter 以提高 @RestController@ResponseBody 和 @RequestBody 注解的 JSON 序列化和反序列化速度。 配置示例如下:

package com.et.fastjson2.config;import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.JSONWriter;
import com.alibaba.fastjson2.support.config.FastJsonConfig;
import com.alibaba.fastjson2.support.spring.http.converter.FastJsonHttpMessageConverter;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.List;@Configuration
public class WebMvcConfig implements WebMvcConfigurer {@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters) {FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();//custom configurationFastJsonConfig config = new FastJsonConfig();config.setDateFormat("yyyy-MM-dd HH:mm:ss");config.setReaderFeatures(JSONReader.Feature.FieldBased, JSONReader.Feature.SupportArrayToBean);config.setWriterFeatures(JSONWriter.Feature.WriteMapNullValue, JSONWriter.Feature.PrettyFormat);converter.setFastJsonConfig(config);converter.setDefaultCharset(StandardCharsets.UTF_8);converter.setSupportedMediaTypes(Collections.singletonList(MediaType.APPLICATION_JSON));converters.add(0, converter);}}

controller

package com.et.fastjson2.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.HashMap;
import java.util.Map;@RestController
public class HelloWorldController {@RequestMapping("/hello")public Map<String, Object> showHelloWorld(){Map<String, Object> map = new HashMap<>();map.put("msg", "HelloWorld");return map;}
}

以上只是一些关键代码,所有代码请参见下面代码仓库

代码仓库

  • https://github.com/Harries/springboot-demo

3.测试

  • 启动spring boot工程,
  • 访问http://127.0.0.1:8088/hello
  • 返回美化的Json格式,说明生效了

4.fastjosn避坑

1.BigDecimal精度丢失问题

  @Testpublic void toJSONString() throws ParseException {UserDTO  user =  new UserDTO();BigDecimal money =new BigDecimal(-40090.07d);money = money.setScale(4, RoundingMode.HALF_UP);user.setMoney(money);String createtime ="2024-07-03 09:03:26.968";SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");Date date = format.parse(createtime);user.setCreateTime(date);List<UserDTO> list = new ArrayList<>();list.add(user);String json=JSON.toJSONString(list);System.out.println(json);}}
执行结果
[{"createTime":"2024-07-03","money":-40090.700}]

发现没有一个怪异现象:-40090.07 变成了-40090.700,直接查几毛钱,原因是fastjson处理bigdecimal不是吧它当成字符串处理,导致丢失精度

解决方法
String json=JSON.toJSONString(list,  JSONWriter.Feature.WriteBigDecimalAsPlain);

2.日期解析问题

@Test
public void parseArray()  {String json="[{\"create_time\":\"2024-07-03 09:03:26.968\",\"money\":-40090.0700}]";System.out.println(json);List<UserDTO> list1 = JSON.parseArray(json, UserDTO.class,JSONReader.Feature.SupportSmartMatch);System.out.println();
}
运行结果
java.time.format.DateTimeParseException: Text '2024-07-03 09:03:26.968' could not be parsed, unparsed text found at index 10
解决方法
UserDTO上加上@JSONField(format= "yyyy-MM-dd HH:mm:ss")

5.引用

  • JSONB格式文档: https://alibaba.github.io/fastjson2/jsonb_format_cn
  • FASTJSON v2性能有了很大提升,具体性能数据看这里: 
http://www.dinnco.com/news/66039.html

相关文章:

  • 上海关键词优化公司哪家好seo网站优化外包
  • 推广网站怎么建设和维护最新国内你新闻
  • 中牟郑州网站建设网站统计数据
  • vue.js做网站营销型网站制作公司
  • 网站可以先做代码么怎样进行seo
  • 网站维护更新费用图片识别搜索引擎
  • 成都高端网站设计公司营销推广方案包括哪些内容
  • 做网站找哪个好如何进行推广
  • 修车店怎么做网站腾讯广告投放推广平台
  • 临朐网站建设建站首选哪家公司哪个平台可以接推广任务
  • 电商网站与大数据宁波seo排名优化哪家好
  • icp网站备案号查询百度查重免费入口
  • 万州做网站多少钱怎么理解搜索引擎优化
  • 谷歌企业邮箱注册厦门seo优化推广
  • 十大网站建设服务商百度的网址
  • 北京到安阳高铁时刻表查询滕州seo
  • 做婚庆的网站seo挂机赚钱
  • 销售类网站开发架构北京百度seo服务
  • 网站开发的公司属于什么行业百度总部公司地址在哪里
  • 做网站双12促销方案公司网页怎么制作
  • 承德网站制作多少钱云计算培训费用多少钱
  • 福建省工程建设信息官方网站引流获客工具
  • dw做旅游网站毕业设计模板下载推荐就业的培训机构
  • 商城网站有哪些功能口碑营销的形式
  • 建网站策划方案上海优化网站方法
  • 商务网站建设与管理网络服务提供者不履行法律行政法规规定
  • 公司做的网站费用如何做账百度营销登录入口
  • 外贸一般在哪个网站做的搜索引擎营销案例
  • 广东网站建设费用搜索seo神器
  • 网站优化标题百度网址大全官方下载