JSON与Java对象的相互转换

JSON和Java对象的转换一般有两种方式一种1.Gson和FastJson,其中国内一般使用阿里的FastJSon但是会有漏洞。而谷歌的Gson要安全一点

Gson

对象转为JSON格式的字符串

1.创建GSON对象g
2.创建需要转换的对象book
3.g调用toJSon方法

package JSon1;

import com.google.gson.Gson;

public class Demo1 {
    public static void main(String[] args) {
        Gson g = new Gson();
        Book book =new Book(1,"数学","讲述了加减乘出");
        String s = g.toJson(book);
        System.out.println(s);
    }

}

Json转换为对象

1.创建GSON对象g
2.创建需要转换的对象book
3.g调用fromJson方法,其中传入的是需要转换的Json与转换后对象的类型.class

package JSon1;

import com.google.gson.Gson;

public class Demo2 {
    public static void main(String[] args) {
        Gson g = new Gson();
        //将{"name":"数学","id":1,"info":"讲述了加减乘出"}转换为boo对象,注意“需要转义字符
        Book book = g.fromJson("{\"name\":\"数学\",\"id\":1,\"info\":\"讲述了加减乘出\"}", Book.class);
        System.out.println(book.toString());
    }

}

Json转换为集合(HashMap)

1.创建Gson对象g
2.g调用fromJson方法,其中参数一传入Json参数二传入HashMap.class
注意:Json内如果属性值是数组那么会转换为Arrylist集合

package JSon1;

import com.google.gson.Gson;

import java.util.HashMap;


public class Demo5 {
    public static void main(String[] args) {
        Gson g = new Gson();
        //将{"name":"数学","id":1,"info":"讲述了加减乘出"}转换为集合,注意“需要转义字符
        HashMap data = g.fromJson("{\"name\":\"数学\",\"id\":1,\"info\":\"讲述了加减乘出\"}", HashMap.class);
        System.out.println(data.get("name"));
    }

}

FastJson

将对象转换为json

直接调用Json类的静态方法toJSONString,其中传入的参数是需要转换的对象

package JSon1;

import com.alibaba.fastjson.JSON;

public class Demo3 {
    public static void main(String[] args) {
        Book book = new Book(1,"数学","讲述了加减乘出");
        String js = JSON.toJSONString(book);
        System.out.println(js);
    }

}

将Json转换为对象

直接调用Json类的静态方法parseObject,其中传入的是需要转换的Json与转换后对象的类型.class

package JSon1;

import com.alibaba.fastjson.JSON;

public class Demo4 {
    public static void main(String[] args) {
        Book book = JSON.parseObject("{\"id\":1,\"info\":\"讲述了加减乘出\",\"name\":\"数学\"}", Book.class);
        System.out.println(book.toString());
    }

}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值