java 中的 Json

java 中的 Json

什么是 json ?

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
在这里插入图片描述

Json 语法

json 中的有特殊意义的字符

  • {} 保存对象
  • [] 保存数组
  • : 键值对(左键右值,左侧字符串,右侧,字符串 | 数字 | 数组 | 对象 | 布尔 | null)
  • , 分隔数据

json 在线解析网站
示例

{
    "name": "BeJson",
    "url": "http://www.bejson.com",
    "page": 88,
    "isNonProfit": true,
    "address": {
        "street": "科技园路.",
        "city": "江苏苏州",
        "country": "中国"
    },
    "links": [
        {
            "name": "Google",
            "url": "http://www.google.com"
        },
        {
            "name": "Baidu",
            "url": "http://www.baidu.com"
        },
        {
            "name": "SoSo",
            "url": "http://www.SoSo.com"
        }
    ]
}

对应的 java 实体类(省略了getter setter)

public class TestBean {

    private AddressEntity address;
    private boolean isNonProfit;
    private String name;
    private List<LinksEntity> links;
    private int page;
    private String url;

    public class AddressEntity {
		private String country;
        private String city;
        private String street;
    }

    public class LinksEntity {
        private String name;
        private String url;
    }
}
json 解析常见类库

java 中解析 json 的常用类库:

  • Gson :谷歌出品
  • FastJson :阿里巴巴出品
  • Jackson : 开源社区活跃

这里,我只用过 Gson。So

使用 Gson 解析 json
将对象,数组,等转为 Json

Gson 中有多个 toJson 的重载方法,Object,List,Map,Set,Array,即调即转。

 Gson gson=new Gson();
 String[] strings={"1","1","2"};
 gson.toJson(strings);
简单 json 解析 (无泛型)

如下所示,未包含泛型的对象,数组,直接使用 formJson(json串,对应class)方法即可。
对象

 TestBean bean = gson.fromJson(jsonStr,TestBean.class);

数组

 String[] result =gson.fromJson(jsonStr,strings.getClass());
复杂 json 解析 (含泛型)

当解析的 json中包含泛型,需要通过 TypeToken 设置泛型。HashMap ArrayList 等类似。
对象

  TestGenericBean<TestBean> testGenericBean = gson.fromJson(jsonStr,new TypeToken<TestGenericBean<TestBean>>() {}.getType());

数组

 List<TestBean> list =gson.fromJson(content, new TypeToken<List<TestBean>>() {}.getType());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值