Java对象与Json字符串的转换

JSON是一种轻量级的数据交换格式,常用于前后端的数据交流

后端 : 前端

Java对象 > JsonString

Java对象 < jsonString

使用Gson进行验证

Bean对象 Java解析Bean对象时需要将对应的'类对象'传入

package com.json.bean;

public class Person {
private int age;
private String name; public Person() {
} public Person(int age, String name) {
this.age = age;
this.name = name;
} @Override
public String toString() {
return "Person{" +
"age=" + age +
", name='" + name + '\'' +
'}';
} 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;
}
}
package com.json.bean;

import com.google.gson.Gson;
import org.junit.Test; public class BeanTrans {
Gson gson = new Gson(); @Test
public void test(){
Person p = new Person(1, "帅哥");
String bean2json= gson.toJson(p); System.out.println(bean2json); Person p1 = gson.fromJson(bean2json,Person.class); System.out.println(p1);
System.out.println(p1.getName());
} }
{"age":1,"name":"帅哥"}
Person{age=1, name='帅哥'}
帅哥

List对象 List需要新建一个类继承TypeToken,然后在Java解析字符串时将TypeToken的子类的‘类对象’传入

package com.json.list;

import com.google.gson.reflect.TypeToken;

import java.util.ArrayList;

public class PersonList extends TypeToken<ArrayList<Person2>> {
}
package com.json.list;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import org.junit.Test; import java.util.ArrayList;
import java.util.List; public class ListTrans {
Gson gson = new Gson();
List<Person2> list = new ArrayList<Person2>(); @Test
public void test(){
Person2 p1 = new Person2(1, "我好帅");
Person2 p2 = new Person2(2, "你也好帅");
list.add(p1);
list.add(p2);
String list2json = gson.toJson(list);
System.out.println(list2json); ArrayList<Person2> list1 = gson.fromJson(list2json,new PersonList().getType());
System.out.println(list1);
System.out.println(list1.get(0).getName()); }
@Test
public void test1(){
Person2 p3 = new Person2(3, "我好帅");
Person2 p4 = new Person2(4, "你也好帅");
list.add(p3);
list.add(p4);
String list2json = gson.toJson(list);
System.out.println(list2json); // 匿名内部类实现
ArrayList<Person2> list1 = gson.fromJson(list2json,new TypeToken<ArrayList<Person2>>(){}.getType());
System.out.println(list1);
System.out.println(list1.get(0).getName()); }
}

Map对象 Java解析Map对象时需要先实现一个继承TypeToken的子类,然后将对应的子类'类对象'传入

package com.json.map;

import com.google.gson.reflect.TypeToken;

import java.util.ArrayList;
import java.util.Hashtable; public class PersonMap extends TypeToken<Hashtable<Integer, Person3>> {
}
package com.json.map;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import org.junit.Test; import java.util.*; public class MapTrans {
Gson gson = new Gson();
Map<Integer,Person3> map = new Hashtable<Integer, Person3>(); @Test
public void test(){
Person3 p5 = new Person3(1, "我好帅");
Person3 p6 = new Person3(2, "你也好帅");
map.put(1,p5);
map.put(2,p6);
String list2json = gson.toJson(map);
System.out.println(list2json); Map<Integer,Person3> list1 = gson.fromJson(list2json,new PersonMap().getType());
System.out.println(list1);
System.out.println(list1.get(1)); }
@Test
public void test1(){
Person3 p5 = new Person3(3, "我好帅");
Person3 p6 = new Person3(4, "你也好帅");
map.put(1,p5);
map.put(2,p6);
String map2json = gson.toJson(map);
System.out.println(map2json); // 匿名内部类实现
Map<Integer,Person3> map2 = gson.fromJson(map2json,new TypeToken<Hashtable<Integer, Person3>>(){}.getType());
System.out.println(map2);
System.out.println(map2.get(1)); }
}

Java对象与Json字符串的转换的更多相关文章

  1. Java基础97 json插件的使用(java对象和json字符串对象之间的转换)

    1.需要用到的包 2.实例 实体类 people package com.shore.entity; /** * @author DSHORE/2019-4-19 * */ public class ...

  2. java对象与json字符串的互相转换

    java对象与json字符串的互相转换 1.采用 net.sf.json.JSONObject maven依赖包: <dependency> <groupId>net.sf.j ...

  3. Java实现JSONObject对象与Json字符串互相转换

    Java实现JSONObject对象与Json字符串互相转换 JSONObject 转 JSON 字符串 Java代码: JSONObject jsonObject = new JSONObject( ...

  4. java对象与Json字符串之间的转化(fastjson)

    1. 首先引入jar包 在pom.xml文件里加入下面依赖: <dependency> <groupId>com.alibaba</groupId> <art ...

  5. Java对象、Json、Xml转换工具Jackson使用

    在Java项目中將一个对象转换成一段Json格式的字符串是非常常见的,能够实现这种需求的工具包也比较多,例如Gson.JSON-lib.Jackson等等.本文主要介绍Jackson的使用,Jacks ...

  6. java对象与Json字符串之间的转化

    public class Test { public static void main(String[] args) { // 实现java对象与Json字符串之间的转化 // 1. Person对象 ...

  7. JackSon将java对象转换为JSON字符串

    JackSon可以将java对象转换为JSON字符串,步骤如下: 1.导入JackSon 的jar包 2.创建ObjectMapper对象 3.使用ObjectMapper对象的writeValueA ...

  8. (后端)JackSon将java对象转换为JSON字符串(转)

    转载小金金金丶园友: JackSon可以将java对象转换为JSON字符串,步骤如下: 1.导入JackSon 的jar包 2.创建ObjectMapper对象 3.使用ObjectMapper对象的 ...

  9. C# 对象与JSON字符串互相转换的三种方式

    C# 对象与JSON字符串互相转换的三种方式 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 关于内存对象和JSON字符串的相互转换, ...

随机推荐

  1. Iterable对象

    ''' 我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list.tuple.dict.set.str等: 一类是generator,包括生成器和带yield的ge ...

  2. numpy矩阵相加时需注意的一个点

    今天在进行numpy矩阵相加的时候出现了一个小的奇怪的地方,下面我们来看看: >>>P = np.array([1,2,3,4]) >>>F = np.array( ...

  3. dB是乘以10还是乘以20

    dB即分贝(decibel),经常用来表示信号的大小.然而,今天在学习计算机网络的时候发现分贝的公式有两种:10lg(X) 或者 20lg(X) 很迷惑所以查找资料.得到的结果是dB在表示功率的时候用 ...

  4. 一文梳理JS事件

    JavaScript与HTML的交互是通过事件进行的.事件,就是文档或浏览器窗口发生的一些特定的交互瞬间. 事件流 事件捕获 事件冒泡 事件处理程序 事件委托 1. 事件流 如果单机页面上的某个按钮, ...

  5. SLS编写规范

    SLS编写规范 规范要点说明 首先,状态的执行不可回滚,执行完了就是执行完了,并不会中断回滚,其次,状态的执行,可以反复执行,也就是说一个状态文件,可以多次来进行调用. 在编写状态文件过程中,有以下几 ...

  6. sharding-jdbc源码解析

    参考博客:https://cloud.tencent.com/developer/article/1529692 看sharding-jdbc支持XA协议重点看下面的代码 sharding-trans ...

  7. 深入理解React:事件机制原理

    目录 序言 DOM事件流 事件捕获阶段.处于目标阶段.事件冒泡阶段 addEventListener 方法 React 事件概述 事件注册 document 上注册 回调函数存储 事件分发 小结 参考 ...

  8. h5请求签名加密

    签名说明 签名对 url + method + 业务参数 进行统一签名,防止重放和篡改 客户端js对加密逻辑和appSecret进行混淆加密处理,增加破解难度 客户端本地存储appid 和 appSe ...

  9. javamelody对Java Application进行监控

    前面写过对于webapp,用javamelody来监控.分析性能是挺方便的:那要对普通的java应用进行监控,只需要在应用上启动一个嵌入式web容器就可以了. javamelody里面的war包就用了 ...

  10. c# 线程的优先级

    前言 有时候我们希望某个线程更加重要,希望让其先运行的话.c#为我们提供了线程修改优先级.但是这样的效果有多大呢? 正文 直接放代码: static void Main(string[] args) ...