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

相关文章

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意