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

相关文章

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

Spring Boot中JSON数值溢出问题从报错到优雅解决办法

《SpringBoot中JSON数值溢出问题从报错到优雅解决办法》:本文主要介绍SpringBoot中JSON数值溢出问题从报错到优雅的解决办法,通过修改字段类型为Long、添加全局异常处理和... 目录一、问题背景:为什么我的接口突然报错了?二、为什么会发生这个错误?1. Java 数据类型的“容量”限制

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

Spring 请求之传递 JSON 数据的操作方法

《Spring请求之传递JSON数据的操作方法》JSON就是一种数据格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,因此JSON本质是字符串,主要负责在不同的语言中数据传递和交换,这... 目录jsON 概念JSON 语法JSON 的语法JSON 的两种结构JSON 字符串和 Java 对象互转

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组