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中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

Java使用POI-TL和JFreeChart动态生成Word报告

《Java使用POI-TL和JFreeChart动态生成Word报告》本文介绍了使用POI-TL和JFreeChart生成包含动态数据和图表的Word报告的方法,并分享了实际开发中的踩坑经验,通过代码... 目录前言一、需求背景二、方案分析三、 POI-TL + JFreeChart 实现3.1 Maven

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑