fastjson--Gson生成Json字符串,并且解析Json字符串生成对象

2024-08-31 23:18

本文主要是介绍fastjson--Gson生成Json字符串,并且解析Json字符串生成对象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

json.jar地址下载 点击打开链接

+++++++++++++++++++++++++++++先看fastjson的使用方法++++++++++++++++++++++++++++++++

Student

package com.example.fastjson;
public class Student {  private String name;  private int age;  /*** 默认的构造方法必须要写,不然是无法解析的*/public Student() {  }  public Student(String name,int age){  this.name = name;  this.age = age;  }  public int getAge() {  return age;  }  public void setAge(int age) {  this.age = age;  }  public String getName() {  return name;  }  public void setName(String name) {  this.name = name;  }  @Overridepublic String toString() {return "Student [name=" + name + ", age=" + age + "]";  }
}  

Grade

package com.example.fastjson;
import java.util.ArrayList;
import java.util.List;public class Grade {  private String gradeName;  private List<Student> students = new ArrayList<Student>();  public Grade() {  }  public Grade(String gradeName) {  this.gradeName = gradeName;  }  public String getGradeName() {  return gradeName;  }  public void setGradeName(String gradeName) {  this.gradeName = gradeName;  }  public List<Student> getStudents() {  return students;  }  public void setStudents(List<Student> students) {  this.students = students;  }  }  


MainActivity

package com.example.fastjson;import java.util.ArrayList;
import java.util.List;import android.app.Activity;
import android.os.Bundle;
import android.util.Log;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/*** 1、1输出javaBean的json格式*/Student student = new Student("dandy",27);  String jsonStudent1 = JSON.toJSONString(student);  String jsonStudent2 = JSON.toJSONString(student,true);  //jsonStudent:{"age":27,"name":"dandy"}Log.i("TAG", "jsonStudent1 standard:"+jsonStudent1);Log.i("TAG", "jsonStudent2 true:"+jsonStudent2);/*** 1、2输出javaBean的特定属性json格式* new SimplePropertyPreFilter(实体类.class,"字段一","字段二"); */SimplePropertyPreFilter filter = new SimplePropertyPreFilter(Student.class,"name");  String jsonStudent = JSON.toJSONString(student,filter);  Log.i("TAG", "jsonStudent filter:"+jsonStudent);/*** 1、3输出复杂的javaBean(带集合的)*/Grade grade = new Grade("高一");  grade.getStudents().add(new Student("dandy",27));  grade.getStudents().add(new Student("Tabolt", 28));  String jsonGrade = JSON.toJSONString(grade);  Log.i("TAG", "jsonGrade:"+jsonGrade);/*** 2、1Json生成javaBean对象实例*/String json = JSON.toJSONString(new Student("Tabolt", 28));  Student studentBean = JSON.parseObject(json,Student.class);  Log.i("TAG", "studentBean:"+studentBean);/*** 2、2Json生成javaBean对象实例 集合*/List<Student> students = new ArrayList<Student>();  for(int i = 0;i < 5;i++){  Student studentFor = new Student("dandy_"+i,26+i);  students.add(studentFor);  }  String jsonFor = JSON.toJSONString(students);  List<Student> stus1 = JSON.parseArray(jsonFor, Student.class);List<Student> stus2 = JSON.parseObject(jsonFor,new TypeReference<List<Student>>(){});  for(Student stu:stus1){  Log.i("TAG", "studentBean:"+stu.toString());}  for(Student stu:stus2){  Log.i("TAG", "studentBean:"+stu.toString());}  }
}


log输出如下。。。


+++++++++++++++++++++++++++++先看Gson的使用方法++++++++++++++++++++++++++++++++

package com.example.gsondemo;import java.util.ArrayList;
import java.util.List;import android.app.Activity;
import android.os.Bundle;
import android.util.Log;import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/*** 1、1gson解析对象*/Gson gson = new Gson();Student student = new Student("dandy", 27);String stuStr = gson.toJson(student);Log.i("TAG", "str:" + stuStr);/*** 1、2gson解析数组对象*/Grade grade = new Grade("高一");grade.getStudents().add(new Student("dandy", 27));grade.getStudents().add(new Student("Tabolt", 28));String str = gson.toJson(grade);Log.i("TAG", "str:" + str);/*** * 2、1 gson解析字符串为javaBean对象*/Student fromJson2Stu = gson.fromJson(stuStr, Student.class);Log.i("TAG", "fromJson2Stu-->" + fromJson2Stu.toString());/*** 2、2gson解析字符串为javaBean对象集合*/List<Student> students = new ArrayList<Student>();for (int i = 0; i < 5; i++) {Student studentFor = new Student("dandy_" + i, 26 + i);students.add(studentFor);}String jsonFor = gson.toJson(students);List<Student> fromJson2StuArr = gson.fromJson(jsonFor,new TypeToken<List<Student>>() {}.getType());for (int i = 0; i < fromJson2StuArr.size(); i++) {Student student2 = fromJson2StuArr.get(i);Log.i("TAG", "student2-->" + student2.toString());}}}






这篇关于fastjson--Gson生成Json字符串,并且解析Json字符串生成对象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125276

相关文章

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

Java字符串处理全解析(String、StringBuilder与StringBuffer)

《Java字符串处理全解析(String、StringBuilder与StringBuffer)》:本文主要介绍Java字符串处理全解析(String、StringBuilder与StringBu... 目录Java字符串处理全解析:String、StringBuilder与StringBuffer一、St

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、