java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java解析JSON

java对于JSON的解析方法举例详解

作者:.ONEPIECE.

在编写应用时,我们经常要解析JSON,下面这篇文章主要给大家介绍了关于java对于JSON的解析方法,文中通过代码示例介绍的非常详细,需要的朋友可以参考下

1、数据类型

1.1、JSONObject

JSONObject是一种在Java中表示JSON对象的数据结构。它是一个无序的键值对集合,用花括号({})包围,并且每个键值对由冒号(:)分隔。

在Java中使用JSONObject,通常需要使用JSON库(如Jackson、Gson等)进行解析和操作。以下是一些常见的JSONObject操作:

需要注意的是,具体的操作方式和方法名称可能会因使用的JSON库而有所不同。上述示例中的方法是基于JSON.simple库进行说明的,其他库可能会有自己的API。

通过JSONObject,您可以方便地处理和操作JSON对象数据,在Java中实现与JSON对象的交互。

1.2、JSONArray

JSONArray是一种在Java中表示JSON数组的数据结构。它是在一对方括号([])内包含零个或多个JSON值的有序集合。JSONArray可以包含不同类型的值,例如字符串、数字、布尔值、对象或其他数组。

在Java中使用JSONArray,通常需要使用JSON库(如Jackson、Gson等)进行解析和操作。以下是一些常见的JSONArray操作:

需要注意的是,具体的操作方式和方法名称可能会因使用的JSON库而有所不同。上述示例中的方法是基于JSON.simple库进行说明的,其他库可能会有自己的API。

通过JSONArray,您可以方便地处理和操作JSON数组数据,在Java中实现与JSON数组的交互。

1.3、ArrayList

ArrayList是Java中的一种动态数组(也称为可变大小的数组),它实现了List接口。与传统的静态数组相比,ArrayList具有自动扩展和缩小容量的能力,可以根据需要动态地调整其大小。

以下是一些常见的ArrayList操作:

需要注意的是,ArrayList可以存储任意类型的对象,而不限于基本数据类型。使用ArrayList时,您可以根据需要动态地添加、删除和修改元素,提供了更灵活的数据存储和操作方式。

2、java转JSON

2.1、javaBean对象转化为JSON串

public void javaBeanToJSON() {
        Person person = new Person(1001,"张三",20,"2002-07-18 12:20:34"); // 有参构造函数(实体类)
        // JSON类有静态方法直接调用可以将javaBean对象转化为JSON串
        String jsonString = JSON.toJSONString(person,true);
        System.out.println(jsonString);
    }

结果

{
    "age":20,
    "birthday":"2002-07-18 12:20:34",
    "eid":1001,
    "username":"张三"
}

2.2、JavaBean对象的数组转化成JSON数组

public  void arrayToJSON() {
        Person p1 = new Person(1001,"张三",20,"2002-07-18 12:20:34");
        Person p2 = new Person(1002,"张四",21,"2003-07-18 12:20:34");
        Person p3 = new Person(1003,"张五",22,"2004-07-18 12:20:34");
        Person[] persopns = {p1,p2,p3};
        // 数组转化成JSON格式的数组
        String jsonString = JSON.toJSONString(persopns, true); // true  是否严格转化成json数组
        System.out.println(jsonString);
    }

结果

[{
    "age":20,
    "birthday":"2002-07-18 12:20:34",
    "eid":1001,
    "username":"张三"
},{
    "age":21,
    "birthday":"2003-07-18 12:20:34",
    "eid":1002,
    "username":"张四"
},{
    "age":22,
    "birthday":"2004-07-18 12:20:34",
    "eid":1003,
    "username":"张五"
}]

2.3、List集合转化成JSON格式

  public void listToJSON() {
        Person p1 = new Person(1001,"张三",20,"2002-07-18 12:20:34");
        Person p2 = new Person(1002,"张四",21,"2003-07-18 12:20:34");
        Person p3 = new Person(1003,"张五",22,"2004-07-18 12:20:34");
        List<Person> list = new ArrayList<Person>();
        list.add(p1);
        list.add(p2);
        list.add(p3);
//        Collections.addAll(list,p1,p2,p3);  // 一次性add
        String jsonString = JSON.toJSONString(list,true);
        System.out.println(jsonString);
    }

结果

[
    {
        "age":20,
        "birthday":"2002-07-18 12:20:34",
        "eid":1001,
        "username":"张三"
    },
    {
        "age":21,
        "birthday":"2003-07-18 12:20:34",
        "eid":1002,
        "username":"张四"
    },
    {
        "age":22,
        "birthday":"2004-07-18 12:20:34",
        "eid":1003,
        "username":"张五"
    }
]

3、JSON转Java

2.1、JSON转化为JAVA的Bean

    public void jsonToJavaBean() {
        String json = "{\"age\":20,\"birthday\":\"2002-07-18 12:20:34\",\"eid\":1001,\"username\":\"张三\"}";
        Person person = JSON.parseObject(json,Person.class); // Person.class 类的结构信息
        System.out.println(person);
    }

结果

Person{eid=1001, username='张三', age=20, birthday='2002-07-18 12:20:34'}

3.2、JSON转化为java集合

public void JSONToJavaList() {
        String json = "[{\"age\":20,\"birthday\":\"2002-07-18 12:20:34\",\"eid\":1001,\"username\":\"张三\"},{\"age\":21,\"birthday\":\"2003-07-18 12:20:34\",\"eid\":1002,\"username\":\"张四\"},{\"age\":22,\"birthday\":\"2004-07-18 12:20:34\",\"eid\":1003,\"username\":\"张五\"}]";
        List<Person> list = JSON.parseArray(json, Person.class);
        System.out.println(list);
    }

结果

[Person{eid=1001, username='张三', age=20, birthday='2002-07-18 12:20:34'}, 
 Person{eid=1002, username='张四', age=21, birthday='2003-07-18 12:20:34'}, 
 Person{eid=1003, username='张五', age=22, birthday='2004-07-18 12:20:34'}]

4、JSONObject与JSONArray

4.1、JSONArray

[
    {
        "key": "value",
        "key2": "value2"
    },
    {
        "key": "value",
        "key2": "value2"
    },
    {
        "key": "value",
        "key2": "value2"
    }
]

[
    {
        "key": "value"
    },
    {
        "key": "value"
    },
    {
        "key": "value"
    }
]

4.2 JSONObject

{
    "key": "value",
    "key2": "value2",
    "key3": "value3"
}

4.3、两者的区别

5、JSONArray与List互转

5.1JSONArray转List

5.1.1.JSONArray字符串转List

//初始化JSONArray
JSONArray array=new JSONArray();
array.add(0,"a");
array.add(1,"b");
array.add(2,"c");
List<String> list = JSONObject.parseArray(array.toJSONString(),String.class);
System.out.println(list.toString());

结果:

[a, b, c]

5.1.2.JSONArray对象 转 List

//初始化JSONArray
JSONArray jsonArray = JSONArray.parseArray("[{\"name\":\"zhangsan\",\"age\":18},{\"name\":\"lisi\",\"age\":23}]");
//打印jsonArray
System.out.println(jsonArray.toJSONString());
//转List
List<Body> list = JSONArray.parseArray(jsonArray.toJSONString(), Body.class);
//打印List<Body>
System.out.println(list.toString());

结果

[{“name”:“zhangsan”,“age”:18},{“name”:“lisi”,“age”:23}]
[Body{name=‘zhangsan’, age=18}, Body{name=‘lisi’, age=23}]

5.2 .List转JSONArray

List<T> list = new ArrayList<T>();
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(list));

总结 

到此这篇关于java对于JSON的解析方法的文章就介绍到这了,更多相关java解析JSON内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文