欢迎光临
我们一直在努力

如何将JSON字符串转换为JSONObject和JSONArray?

JSON字符串转换JSONObject和JSONArray的方法

如何将JSON字符串转换为JSONObject和JSONArray?

一、概述

在现代软件开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,广泛应用于不同的应用程序之间传输数据,JSON的基本结构包括对象(Object)和数组(Array),分别用大括号{} 和方括号[] 包围,键值对由冒号: 分隔,多个键值对或元素由逗号, 分隔。

二、JSONObject与JSONArray的区别

JSONObject:表示一个无序的键值对集合,最外层使用大括号{} 包围。{"name":"John Doe","age":30,"isStudent":false,"hobbies":["reading","coding","swimming"]}

JSONArray:表示一个有序的值集合,最外层使用方括号[] 包围。[{"column":"amount","aggType":"sum"},{"column":"audit_date","aggType":"[a,b]","values":["20200315","20200415"]},null]

三、JSON字符串转换为JSONObject和JSONArray的方法

1. 使用fastjson库

String转JSONObject

如何将JSON字符串转换为JSONObject和JSONArray?

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class Main {
    public static void main(String[] args) {
        String jsonString = "{\"datasetId\":602,\"cfg\":\"\"}";
        JSONObject jsonObject = JSON.parseObject(jsonString);
        System.out.println(jsonObject);
    }
}

String转JSONArray

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
public class Main {
    public static void main(String[] args) {
        String jsonString = "[{\"column\":\"amount\",\"aggType\":\"sum\"},{\"column\":\"audit_date\",\"aggType\":\"[a,b]\",\"values\":[\"20200315\",\"20200415\"]},null]";
        JSONArray jsonArray = JSON.parseArray(jsonString);
        System.out.println(jsonArray);
    }
}

JSONObject中的数据提取为JSONArray

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class Main {
    public static void main(String[] args) {
        String jsonString = "{\"datasetId\":602,\"values\":[{\"column\":\"amount\",\"aggType\":\"sum\"},{\"column\":\"audit_date\",\"aggType\":\"[a,b]\",\"values\":[\"20200315\",\"20200415\"]}]}";
        JSONObject jsonObject = JSON.parseObject(jsonString);
        JSONArray jsonArray = jsonObject.getJSONArray("values");
        System.out.println(jsonArray);
    }
}

JSONArray提取为JSONObject

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class Main {
    public static void main(String[] args) {
        String jsonString = "[{\"columnName\":\"assets_group\",\"filterType\":\"≠\",\"values\":[\"苹果\"]},{\"columnName\":\"audit_date\",\"filterType\":\"[a,b]\",\"values\":[\"20200315\",\"20200415\"]},null]";
        JSONArray jsonArray = JSON.parseArray(jsonString);
        JSONObject jsonObject = jsonArray.getJSONObject(0);
        System.out.println(jsonObject);
    }
}

JSONObject获取value

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class Main {
    public static void main(String[] args) {
        String jsonString = "{\"datasetId\":602,\"cfg\":\"\"}";
        JSONObject jsonObject = JSON.parseObject(jsonString);
        Object value = jsonObject.get("datasetId");
        System.out.println(value); // 输出:602
    }
}

Map转JSONstring

import com.alibaba.fastjson.JSON;
import java.util.HashMap;
import java.util.Map;
public class Main {
    public static void main(String[] args) {
        Map<String, Object> map = new HashMap<>();
        map.put("key1", "value1");
        map.put("key2", 123);
        String jsonString = JSON.toJSONString(map);
        System.out.println(jsonString); // 输出:{"key1":"value1","key2":123}
    }
}

JSON转实体类

import com.alibaba.fastjson.JSON;
import java.util.List;
public class Main {
    public static void main(String[] args) {
        String jsonStr = "{\"name\":\"John Doe\",\"age\":30,\"isStudent\":false,\"hobbies\":[\"reading\",\"coding\",\"swimming\"]}";
        Person person = JSON.parseObject(jsonStr, Person.class);
        System.out.println(person);
    }
}
class Person {
    private String name;
    private int age;
    private boolean isStudent;
    private List<String> hobbies;
    // getters and setters
}

实体类转JSON

如何将JSON字符串转换为JSONObject和JSONArray?

import com.alibaba.fastjson.JSON;
import java.util.Arrays;
import java.util.List;
public class Main {
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("John Doe");
        person.setAge(30);
        person.setStudent(false);
        List<String> hobbies = Arrays.asList("reading", "coding", "swimming");
        person.setHobbies(hobbies);
        String jsonStr = JSON.toJSONString(person);
        System.out.println(jsonStr); // 输出:{"name":"John Doe","age":30,"isStudent":false,"hobbies":["reading","coding","swimming"]}
    }
}

四、相关问题与解答栏目

问题1:如何在Java中使用Gson库将JSON字符串转换为Java对象?

答:要在Java中使用Gson库将JSON字符串转换为Java对象,首先需要定义一个与JSON结构匹配的Java类,然后使用Gson库的解析功能来实现转换,以下是一个示例:

import com.google.gson.Gson;
public class Main {
    public static void main(String[] args) {
        String jsonStr = "{\"name\":\"John Doe\",\"age\":30,\"isStudent\":false,\"hobbies\":[\"reading\",\"coding\",\"swimming\"]}";
        Gson gson = new Gson();
        Person person = gson.fromJson(jsonStr, Person.class);
        System.out.println(person);
    }
}
class Person {
    private String name;
    private int age;
    private boolean isStudent;
    private List<String> hobbies;
    // getters and setters
}

在这个例子中,我们使用了Gson库的fromJson方法将JSON字符串转换为Person类的实例,需要注意的是,Person类的属性必须与JSON字符串中的键名相匹配,并且属性类型也必须与相应的值类型相匹配,如果JSON字符串中的某个键在Person类中没有对应的属性,那么这个键将被忽略。

到此,以上就是小编对于“JSON字符串转换JSONObject和JSONArray的方法”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《如何将JSON字符串转换为JSONObject和JSONArray?》
文章链接:https://yuyunkj.com/article/10583.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发