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互转的东西有很多,思路大多一致,这里就不一一拓展了

发布了161 篇原创文章 · 获赞 93 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/JunSIrhl/article/details/103998551