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

百度网站的优化方案可视化网页开发

百度网站的优化方案,可视化网页开发,苏州seo关键词优化报价,开发建设信息的网站FastJson:JSON JSONObject JSONArray详解以及SimplePropertyPreFilter 的介绍 FastJson是阿里巴巴开发的一款专门用于Java开发的包,实现Json对象,JavaBean对,Json字符串之间的转换。 文章目录 FastJson:JSON JSONObje…

FastJson:JSON JSONObject JSONArray详解以及SimplePropertyPreFilter 的介绍

FastJson是阿里巴巴开发的一款专门用于Java开发的包,实现Json对象,JavaBean对,Json字符串之间的转换。


文章目录

  • FastJson:JSON JSONObject JSONArray详解以及SimplePropertyPreFilter 的介绍
  • 一、JSON对象介绍
  • 二、FastJson-JSON
  • 三、FastJson-JSONObject
  • 四、FastJson-JSONArray
  • 五、常用方法汇总
    • 常用方法
    • 简单说一下FastJSON的JSON过滤器


一、JSON对象介绍

JSON的特点如下:

  1. 数据在花括号中。
  2. 数据以"键:值"对的形式出现(其中键多以字符串形式出现,值可取字符串,数值,甚至其他json对象)。
  3. 每两个"键:值"对以逗号分隔(最后一个"键:值"对省略逗号)。

例:

普通Json对象
{"ID": 1001,"name": "张三","age": 24}
数组Json对象
[{"ID": 1001, "name": "张三", "age": 24},{"ID": 1002, "name": "李四", "age": 25},{"ID": 1003, "name": "王五", "age": 22}
]复杂Json对象
{"部门名称":"研发部","部门成员":[{"ID": 1001, "name": "张三", "age": 24},{"ID": 1002, "name": "李四", "age": 25},{"ID": 1003, "name": "王五", "age": 22}],"部门位置":"xx楼21号"
}

二、FastJson-JSON

JSON是一个抽象类并且实现了JSONStreamAware, JSONAware接口,提供了JSON转换的方法(详细方法说明看后文)。

JSON多用于JavaBean->JSONString 或者 JSONString->javaJSON

@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class StudentEntity {@JSONField(name = "student_name",ordinal = 1)private String name;@JSONField(name = "student_age",ordinal = 2)private Integer age;
}
 @Testpublic void beanJsonTest() {StudentEntity student = StudentEntity.builder().name("张三").age(18).build();String jsonStudentString = JSON.toJSONString(student); //{"student_name":"张三","student_age":18}StudentEntity studentObject = JSON.parseObject(jsonStudentString, StudentEntity.class);  //转为java对象}

三、FastJson-JSONObject

JSONObject继承了JSON并实现了Map接口。

底层是个Map集合,多用于操作JSONObject 如取属性等,Map集合的功能也都有。

@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class StudentEntity {@JSONField(name = "student_name",ordinal = 1)private String name;@JSONField(name = "student_age",ordinal = 2)private Integer age;
}
 @Testpublic void beanJsonTest() {StudentEntity student = StudentEntity.builder().name("张三").age(18).build();String jsonStudentString = JSON.toJSONString(student); //{"student_name":"张三","student_age":18}/**Map<String,Object> map = new HashMap<>();map.put("student_name", "李四");map.put("student_age", 19);map.put("date",students);JSONObject jsonObject = new JSONObject(map);**/JSONObject jsonObject = JSONObject.parseObject(jsonStudentString); //{"student_name":"张三","student_age":18}jsonObject.put("student_name", "李四");jsonObject.put("student_age", 19);//{"student_name":"李四","student_age":19}jsonObject.put("date",student);//{"student_name":"张三","student_age":18,"date":[{"student_name":"张三","student_age":18},{"student_name":"张三","student_age":18},{"student_name":"张三","student_age":18}]}//get方法  根据key取出valueStudentEntity date = jsonObject.getObject("date", StudentEntity.class);String studentName = jsonObject.getObject("student_name", String.class);jsonObject.getString("student_name");}

四、FastJson-JSONArray

JSONObject继承了JSON并实现了List接口。

底层是个ArrayList,多用于用于操作JSONArray 比如遍历等,通常与JSONObject联合使用。

@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class StudentEntity {@JSONField(name = "student_name",ordinal = 1)private String name;@JSONField(name = "student_age",ordinal = 2)private Integer age;
}
    @Testpublic void twoTest3() {StudentEntity student1 = StudentEntity.builder().name("张三").age(18).build();StudentEntity student2 = StudentEntity.builder().name("张三").age(18).build();StudentEntity student3 = StudentEntity.builder().name("张三").age(18).build();ArrayList<StudentEntity> students = Lists.newArrayList(student1, student2, student3);JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(students));jsonArray.forEach(item -> {String jsonStudentStringItem = JSONObject.toJSONString(item);System.out.println(jsonStudentStringItem);});//{"student_name":"张三","student_age":18}//{"student_name":"张三","student_age":18}//{"student_name":"张三","student_age":18}JSONObject StudentJson = new JSONObject();StudentJson.put("Student",jsonArray);System.out.println(StudentJson.toJSONString());}

在这里插入图片描述

五、常用方法汇总

常用方法

  /*** FastJson常用方法*/@Testpublic void fastJSONTest() {StudentEntity student = StudentEntity.builder().name("张三").age(18).build();//1.JSON常用方法//1.1  toJSONString :将java对象转为JSONStringString jsonStudentString = JSON.toJSONString(student);//{"student_name":"张三","student_age":18}//1.2  parseObject :将JSONString转为java对象StudentEntity studentObject = JSON.parseObject(jsonStudentString, StudentEntity.class);//StudentEntity(name=张三, age=18)// 1.3 JSONtoJSONBytes():将 Java 对象序列化为 JSON 字节数组byte[] jsonStudentStringBytes = JSON.toJSONBytes(student);//[123, 34, 115, 116, 117, 100, 101, 110, 116, 95, 110, 97, 109, 101, 34, 58, 34, 228, 189, 254, 228, 184, 230, 34, 44, 34,115, 116, 117, 100, 101, ]//1.4 JSONparseBytes():将 JSON 字节数组反序列化为 Java 对象StudentEntity studentObject2 = JSON.parseObject(jsonStudentStringBytes, StudentEntity.class);//1.5 JSON.parseObject:将Java对象转为JSONObjectJSONObject jsonObject = JSON.parseObject(jsonStudentString);//2.JSONObject常用方法 JSONObject继承了JSON类,并实现了Map接口,所以可以调用JSON类中的方法,并且重写了Map相关方法//2.1 JSONObject.toJSONString():将JSONObject转为JSONStringString jsonStudentString2 = jsonObject.toJSONString();//{"student_name":"张三","student_age":18}//2.2 JSONObject.put():根据key设置valuejsonObject.put("STUDENT", StudentEntity.builder().name("王五").age(22).build());//{"student_name":"张三","student_age":18,"STUDENT":{"student_name":"王五","student_age":22}}//2.3 JSONObject.getXxx():根据key取出valueString studentName = jsonObject.getString("student_name");//张三Integer studentAge = jsonObject.getInteger("student_age");//18/* String name = jsonObject.getObject("name", String.class);Integer age = jsonObject.getObject("age", Integer.class);*/StudentEntity studentObject3 = jsonObject.getObject("STUDENT", StudentEntity.class);//StudentEntity(name=王五, age=22)//2.4 toJavaObject:将JSONObject转为Java对象StudentEntity javaObject = jsonObject.toJavaObject(StudentEntity.class);//2.5 putAll():合并两个JSONObjectString json1 = "{\"name\":\"Jack\"}";String json2 = "{\"age\":35}";JSONObject jsonObject1 = JSON.parseObject(json1);JSONObject jsonObject2 = JSON.parseObject(json2);JSONObject jsonObject3 = new JSONObject();jsonObject3.putAll(jsonObject1);jsonObject3.putAll(jsonObject2);//{"name":"Jack","age":35}//2.6 isEmpty():判断JSONObject是否为空boolean empty = jsonObject.isEmpty();//containsKey() keySet() vlues() clear() remove() containsValue() 跟Map集合的方法一样 不在列举//3.JSONArray常用方法//3.1. parseArray:将Java对象转为JSONArrayStudentEntity student1 = StudentEntity.builder().name("张三1").age(18).build();StudentEntity student2 = StudentEntity.builder().name("张三2").age(18).build();StudentEntity student3 = StudentEntity.builder().name("张三3").age(18).build();ArrayList<StudentEntity> studentEntities = Lists.newArrayList(student1, student2, student3);JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(studentEntities));//[{"student_name":"张三1","student_age":18},{"student_name":"张三2","student_age":18},{"student_name":"张三3","student_age":18}]//3.2. toJSONString():将JSONArray转为JSONStringString jsonArrayString = jsonArray.toJSONString();//"[{"student_name":"张三1","student_age":18},{"student_name":"张三2","student_age":18},{"student_name":"张三3","student_age":18}]//3.3. toJavaObject():将JSONArray转为Java对象List<StudentEntity> studentEntities1 = jsonArray.toJavaList(StudentEntity.class);// forEach(),fparallelStream(),stream(),spliterator(),iterator(),sort(),get()这些Arraylist方法同样都有,不在列举}

简单说一下FastJSON的JSON过滤器

SimplePropertyPreFilter 简单过滤器

class Person {public String name;public int age;
}
@Testpublic void toJSONStringWithFilterExample() {Person person = new Person();person.name = "Eve";person.age = 40;// SimplePropertyPreFilter类 实现 JSON字符串过滤SimplePropertyPreFilter simplePropertyPreFilter1 = new SimplePropertyPreFilter();//添加过滤字段simplePropertyPreFilter1.getExcludes().add("age");//不包括 "age" 字段//调用toJSONString将Java转String时传入过滤器System.out.println(JSON.toJSONString(person, simplePropertyPreFilter1));//{"name":"Eve"}//或者SimplePropertyPreFilter simplePropertyPreFilter2 = new SimplePropertyPreFilter();//添加保留字段simplePropertyPreFilter2.getIncludes().add("name");//包括 "name" 字段//调用toJSONString将Java转String时传入过滤器System.out.println(JSON.toJSONString(person, simplePropertyPreFilter2));//{"name":"Eve"}
}

自定义过滤器
FastJson提供的简单过滤器很多时候无法满足我们需求,这个时候就可以自定义管理器

@Testpublic void toJSONStringWithFilterExample2() {Person person = new Person();//1.实现 ValueFilter 接口 重写 process 方法ValueFilter filter = (object, name, value) -> {if (name.equals("age")) {return null; // 不包括 "age" 字段}return value;};// 2.实现 PropertyFilter 接口 重写 apply 方法PropertyFilter filter2 = (object, name, value) -> {if (name.equals("age")) {return false; // 不包括 "age" 字段}return true;};String jsonString1 = JSON.toJSONString(person, filter);//{"name":"Eve"}String jsonString2 = JSON.toJSONString(person, filter2);//{"name":"Eve"}}

当然还可以根据管理器实现原来去手搓来增填功能,深入了解推荐一篇文章
API接口使用Jackson序列化JSON数据动态过滤字段


文章转载自:

http://0Ggf8csx.dLjny.cn
http://UvPTdS8a.dLjny.cn
http://FoF2f4tl.dLjny.cn
http://yfVmdpyL.dLjny.cn
http://p7W2s4X7.dLjny.cn
http://BImCrlt5.dLjny.cn
http://vB0HwzJF.dLjny.cn
http://ZgmeMfua.dLjny.cn
http://bN2VIS65.dLjny.cn
http://8rnvRdhI.dLjny.cn
http://zCQa4pTN.dLjny.cn
http://lBfdGrVu.dLjny.cn
http://D7JQsIo8.dLjny.cn
http://QcSc9oda.dLjny.cn
http://swhqUH0M.dLjny.cn
http://R3TGjjRs.dLjny.cn
http://XxoiIRQx.dLjny.cn
http://0nHwdXiT.dLjny.cn
http://jRIR2Ftp.dLjny.cn
http://7V88AFco.dLjny.cn
http://avyeIl3A.dLjny.cn
http://iWCj763e.dLjny.cn
http://2xewrkcW.dLjny.cn
http://w7QCfy6e.dLjny.cn
http://DFlsXm68.dLjny.cn
http://Wa5gmNsE.dLjny.cn
http://bhnrWZmJ.dLjny.cn
http://lzSuQAIz.dLjny.cn
http://f1iFjAd6.dLjny.cn
http://HQvEfa9a.dLjny.cn
http://www.dtcms.com/wzjs/653143.html

相关文章:

  • server2008部署网站广州市广园路建设公司网站
  • 保山 网站建设中国最近重大新闻
  • 网站发布文章怎么才能让百度收录网站遭攻击
  • 推广文案一般多少字seo如何网站正常更新
  • 网站建设风险是什么做推广网站公司
  • 简洁企业网站模板成品网站管系统
  • 石家庄新钥匙网站建设在线制作印章免费
  • 网站建设调查报告建设工程询价网站有哪些
  • 深圳高端网站建设公司西安官网seo价格
  • 网站正在建设中下载广州网站定做
  • ui设计师做网站wordpress怎么上传插件
  • 怎样建设自己的视频网站首页全屋整装120平米的多少钱
  • 团购做的好的网站东莞网站建设58
  • 中国建设银行复核网站网站开发工作分解结构
  • 平板网站开发网站建设能力
  • 人才引进从事网站建设wordpress ios 源码
  • 提升网站速度搜索引擎优化的各种方法
  • 电子商务网站建设方案设计报告嘉定区做网站
  • 网站空间租用多少钱怎样利用云盘做电影网站
  • 怎么知道网站谁建的云南省工程建设信息网站
  • 电商网站网址在线网站建设平台
  • 网上注册公司什么网站常州网站制作优化
  • 网站建设报价word文档58同城鞍山招聘信息
  • 哈尔滨建设网站公司哪家好电商网站建设的目标
  • 河南平台网站建设建设网站需要申请报告
  • linux用.net做网站字体设计素材网
  • 企业网站建设开发公司网站实现留言功能吗
  • 连江网站建设服务重庆网站首页制作
  • 网站后台修改的页面不能显示徐州seo顾问
  • 广州市外贸网站建设品牌莫名接到网站建设电话