Java教程

JavaWeb-JSON

本文主要是介绍JavaWeb-JSON,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

JavaWeb-JSON


文章目录

  • JavaWeb-JSON
  • 前言
  • 一、JSON格式
  • 二、JSON格式转换
    • 1.手动转为JSON格式
    • 2.使用Jackson工具


前言

前端和后端之间传递数据,需要进行格式规定。

传递消息列表:
1、通过 ‘\n’ 分割每个消息
2、通过 ‘:’ 分割消息中的每个字段
缺点:
1、当层级比较深时,比较复杂
2、如果消息中出现了 ‘\n’ 和 ‘:’ ,需要对其进行转义

传递时常见的数据格式协议:
1、CSV:逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号)
2、XML:可扩展标记语言,标准通用标记语言的子集,简称XML
3、 JSON:(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。


一、JSON格式

[
 {"key1":"value1","key2":"value2",···},
  ···
 {"key3":"value3","key4":"value4",···}
]

以下图片来源于百度百科:
在这里插入图片描述

二、JSON格式转换

1.手动转为JSON格式

代码如下(示例):

//Message
public class Message {
    public String who;
    public String target;
    public String what;
}
//ToJSONDemo1
import java.util.ArrayList;
import java.util.List;

public class ToJSONDemo1 {
    public static void main(String[] args) {
        Message m1 = new Message();
        m1.who = "A";
        m1.target = "B";
        m1.what = "A to B";

        Message m2 = new Message();
        m2.who = "B";
        m2.target = "A";
        m2.what = "B to A";

        List<Message> list = new ArrayList<>();
        list.add(m1);
        list.add(m2);

        //手动转 JSON 格式
        StringBuffer sb = new StringBuffer();
        sb.append("[");
        for(Message m: list){
            sb.append("{");
            sb.append("\"who\":");
            sb.append("\"" + m.who + "\",");
            sb.append("\"target\":");
            sb.append("\"" + m.target + "\",");
            sb.append("\"what\":");
            sb.append("\"" + m.what + "\"");
            sb.append("},");
        }

        //删除最后一个逗号
        sb.deleteCharAt(sb.length() - 1);
        sb.append("]");
        System.out.println(sb.toString());
    }
}

2.使用Jackson工具

1、配置环境
在pom.xml中加入如下依赖后刷新

		<dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.11.4</version>
        </dependency>

加入成功后会有三个包:
在这里插入图片描述
代码如下(示例):

//ToJSONDemo1
mport com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.ArrayList;
import java.util.List;

public class ToJSONDemo2 {
    public static void main(String[] args) throws JsonProcessingException {
        Message m1 = new Message();
        m1.who = "A";
        m1.target = "B";
        m1.what = "A to B";

        Message m2 = new Message();
        m2.who = "B";
        m2.target = "A";
        m2.what = "B to A";

        List<Message> list = new ArrayList<>();
        list.add(m1);
        list.add(m2);
        
        //使用工具转JSON格式
        //ObjectMapper-对象映射器
        ObjectMapper objectMapper = new ObjectMapper();
        String s = objectMapper.writeValueAsString(list);
        System.out.println(s);
    }
}

这篇关于JavaWeb-JSON的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!