Java中JSON数据编码与解码

简介: JSON和XML真正在进行数据交换时候,它们存在的形式就是一个很长的字符串,这个字符串在网络 中传输或者存储于磁盘等介质中。在传输和存储之前需要把JSON对象转换成为字符串才能传输和存 储,这个过程称之为“编码”过程。接收方需要将接收到的字符串转换成为JSON对象,这个过程称之 为“解码”过程。编码和解码过程就像发电报时发送方把语言变成能够传输的符号,而接收时要将符号 转换成为能够看懂的语言。

JSON和XML真正在进行数据交换时候,它们存在的形式就是一个很长的字符串,这个字符串在网络 中传输或者存储于磁盘等介质中。在传输和存储之前需要把JSON对象转换成为字符串才能传输和存 储,这个过程称之为“编码”过程。接收方需要将接收到的字符串转换成为JSON对象,这个过程称之 为“解码”过程。编码和解码过程就像发电报时发送方把语言变成能够传输的符号,而接收时要将符号 转换成为能够看懂的语言。


流程图如下:

10.png

介绍一下JSON对象与JSON字符串区别:

JSON对象:

var person={"name":"zhangsan","sex":"男","age":"24"}//json对象
alert(person.name);//zhangsan
alert(typeof person);//object

JSON字符串:

var person='{"name":"zhangsan","sex":"男","age":"24"}';//json字符串
alert(person);//{"name":"zhangsan","sex":"男","age":"24"}
alert(typeof person);//string

由于目前Java官方没有提供JSON编码和解码所需要的类库,所以需要使用第三方JSON库。


下载完成之后,我们需要把报导入到IDEA:

第一步:创建org.json包

在src文件夹中右击new,选择Package,然后输入包名称org.json。

15.png

第二步:复制源代码文件

将下载好的JSON-java库里面的所有文件全部复制到org.json中

16.png

17.png


下面开始JSON数据解码与编码

先看编码:

如果想获得如下这样JSON字符串:

{"a":[1,2,3],"name":"tony","age":30}

实现编码过程,参考代码如下:

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.Arrays;
import java.util.List;
/**
 * @author : 蔡政洁
 * @email :caizhengjie888@icloud.com
 * @date : 2020/2/20
 * @time : 10:01 下午
 */
//如果想得到JSON字符串{"a":[1,2,3],"name":"tony","age":30},要编码
public class HelloWorld {
    public static void main(String[] args) {
        try {
            JSONObject object = new JSONObject();
            object.put("name","tony");
            object.put("age",30);
//            第一种加入列表方式
//            List<Integer> integers = Arrays.asList(1,2,3);
//            object.put("a",integers);
//            第二种加入列表方式
            JSONArray jsonArray = new JSONArray();
            jsonArray.put(1).put(3);
            object.put("a",jsonArray);
//            编码完成
            System.out.println(object.toString());
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}

就可以得到上面的运行结果

再看解码:解码过程是编码反向操作,如果有如下JSON字符串

{"a":[1,2,3],"name":"tony","age":30}

JSON字符串解码成JSON对象或数组,参考代码如下:

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/**
 * @author : 蔡政洁
 * @email :caizhengjie888@icloud.com
 * @date : 2020/2/20
 * @time : 11:17 下午
 */
//解码过程是编码的反向操作
public class HelloWorld {
    public static void main(String[] args) {
//       声明一个json字符串
        String jsonString = "{\"a\":[1,2,3],\"name\":\"tony\",\"age\":30}";
        try {
            JSONObject object = new JSONObject(jsonString);
            System.out.println(object);
            String name = object.getString("name");
            System.out.println("name : "+name);
            int age = object.getInt("age");
            System.out.println("age : "+age);
            JSONArray jsonArray = object.getJSONArray("a");
            int n1 = jsonArray.getInt(0);
            System.out.println("数组a的第一个元素:"+n1);
            int n2 = jsonArray.getInt(1);
            System.out.println("数组a的第二个元素:"+n1);
        }catch (JSONException e){
            e.printStackTrace();
        }
    }
}

运行结果:

{"a":[1,2,3],"name":"tony","age":30}
name : tony
age : 30
数组a的第一个元素:1
数组a的第二个元素:1


相关文章
|
29天前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
15天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
19天前
|
JSON 缓存 前端开发
PHP如何高效地处理JSON数据:从编码到解码
在现代Web开发中,JSON已成为数据交换的标准格式。本文探讨了PHP如何高效处理JSON数据,包括编码和解码的过程。通过简化数据结构、使用优化选项、缓存机制及合理设置解码参数等方法,可以显著提升JSON处理的性能,确保系统快速稳定运行。
|
12天前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索API接口返回数据的JSON格式示例
拍立淘按图搜索API接口允许用户通过上传图片来搜索相似的商品,该接口返回的通常是一个JSON格式的响应,其中包含了与上传图片相似的商品信息。以下是一个基于淘宝平台的拍立淘按图搜索API接口返回数据的JSON格式示例,同时提供对其关键字段的解释
|
1月前
|
JSON JavaScript Java
在Java中处理JSON数据:Jackson与Gson库比较
本文介绍了JSON数据交换格式及其在Java中的应用,重点探讨了两个强大的JSON处理库——Jackson和Gson。文章详细讲解了Jackson库的核心功能,包括数据绑定、流式API和树模型,并通过示例演示了如何使用Jackson进行JSON解析和生成。最后,作者分享了一些实用的代码片段和使用技巧,帮助读者更好地理解和应用这些工具。
在Java中处理JSON数据:Jackson与Gson库比较
|
JSON Java Maven
在Java中,我们可以使用第三方库来解析JSON数据
在Java中,我们可以使用第三方库来解析JSON数据。这里以常用的Jackson库为例,演示如何解析JSON数据。
97 1
|
JSON Java Maven
|
3月前
|
JSON Java API
在 Java 中解析 JSON ArrayList 的详细指南
【8月更文挑战第23天】
79 1
|
SQL 数据采集 JSON
java解析json数据生成mysql省市区街道四级联动sql
这里为了省事直接用嵌套的for循环了,生成sql文件以后直接用sql工具运行即可,需要提前创建好数据库表。
632 0
|
JSON JavaScript 前端开发
除了闹过腥风血雨的fastjson,你还知道哪些Java解析JSON的利器?(1)
除了闹过腥风血雨的fastjson,你还知道哪些Java解析JSON的利器?
148 0
除了闹过腥风血雨的fastjson,你还知道哪些Java解析JSON的利器?(1)
下一篇
无影云桌面