JavaEE-数据交换格式-JSON快速上手

Java-数据交换格式-JSON快速上手


JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 这些特性使JSON成为理想的数据交换语言

JSON的结构

结构一:

“名称/值”对的集合(A collection of name/value pairs)

示例:var json = {“name”:”Jack”,”age”:90,”Marray”:true}

结构二:

值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)
数组是值(value)的有序集合

{a,b,c}

导入JSON相关包

下载地址

如果在IDEA导完包后无法正常使用请重启IDEA

应用示例

将map转换成json格式的字符串

package com;

import net.sf.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

public class testJson {
    public static void main(String[] args) {
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("name","张三");
        map.put("age",12);
        map.put("address","深圳");
        //map转换成JSON对象
        JSONObject obj = JSONObject.fromObject(map);
        //把JSON对象转换成字符串
        String result = obj.toString();
        System.out.println(result);

    }
}

{"address":"深圳","age":12,"name":"张三"}

JSON还支持对bean(实体类)做出转换,主要依据bean的属性

JSON配置对象

JsonConfig是JSON配置对象,它可以

过滤属性:

package com;

import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;

import java.util.HashMap;
import java.util.Map;

public class testJson {
    public static void main(String[] args) {
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("name","张三");
        map.put("age",12);
        map.put("address","深圳");
        //创建配置对象
        JsonConfig jc = new JsonConfig();
        //过滤目标属性
        jc.setExcludes(new String[]{"name"});
        //map转换成JSON对象
        JSONObject obj = JSONObject.fromObject(map,jc);
        //把JSON对象转换成字符串
        String result = obj.toString();
        System.out.println(result);
    }
}

结果为{"address":"深圳","age":12}

JSON字符串转成Bean

JSON字符串可以转换成属性与之对应的对象

现有字符串如下

String str = "{\"address\":\"深圳\",\"age\":12,\"name\":\"张三\"}" ;

实体类(Bean)如下

package com;

public class Person {
    String name ;
    int age ;
    String address ;

    public Person(){

    }
    public Person(String name, int age, String address) {
        this.name = name;
        this.age = age;
        this.address = address;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", address='" + address + '\'' +
                '}';
    }
}

注意:相关类的默认构造器一定要定义出来

转换代码:

package com;

import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import java.util.HashMap;
import java.util.Map;

public class testJson {
    public static void main(String[] args) {

        String str = "{\"address\":\"深圳\",\"age\":12,\"name\":\"张三\"}" ;
        //创建配置对象
        JsonConfig jc = new JsonConfig();
        //str转换成JSON对象
        JSONObject obj = JSONObject.fromObject(str) ;
        //把JSON对象转换成bean
        Person p = (Person) JSONObject.toBean(obj,Person.class);
        System.out.println(p);
        
    }
}

结果:

Person{name='张三', age=12, address='深圳'}

其实,可以和JSON互转的东西有很多,思路大多一致,这里就不一一拓展了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值