前端和后端之间传递数据,需要进行格式规定。
传递消息列表:
1、通过 ‘\n’ 分割每个消息
2、通过 ‘:’ 分割消息中的每个字段
缺点:
1、当层级比较深时,比较复杂
2、如果消息中出现了 ‘\n’ 和 ‘:’ ,需要对其进行转义
传递时常见的数据格式协议:
1、CSV:逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号)
2、XML:可扩展标记语言,标准通用标记语言的子集,简称XML
3、 JSON:(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
[ {"key1":"value1","key2":"value2",···}, ··· {"key3":"value3","key4":"value4",···} ]
以下图片来源于百度百科:
代码如下(示例):
//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()); } }
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); } }