Java web JSON

XML 可拓展标记语言

是一种简单的数据存储语言、

格式

<?xml version="1.0" encoding="UTF-8">//xml声明
<books id="h1">//根元素
	<book>//标签
		<author>北大青鸟</author>
		<title>java从入门到入土</title>	
	</book>
</books>

标签必须成对出现

xml中特殊字符串的处理

&lt;<小于
&gt;>大于
&amp;&和号
&apos;单引号
&quot;"引号

xml注释

使用DTD正XML文档

DTD 文档类型定义的缩写

元素的定义规则、元素之间的关系规则、属性的定义规则

使没个xml文件可以携带一个自身格式的描述

不同组织的人可以通过通用DTD来交换数据

使用Schema验证xml文档

改进了DTD的晦涩语法、缺乏数据类型、封闭的内容模型

`特点:

xml与操作系统、变成语言的开发平台无关

作用:数据交互

JSON

JavaScript Object Notation(JavaScript 对象表示法)

JSON 是存储和交换文本信息的语法,类似 XML。

JSON 比 XML 更小、更快,更易解析。

JSON 语法规则

JSON 语法是 JavaScript 对象表示语法的子集。

  • 数据在名称/值对中

  • 数据由逗号分隔

  • 大括号 {} 保存对象

  • 中括号 [] 保存数组,数组可以包含多个对象

    `"s`ites": [`
       `{ "name":"菜鸟教程" , "url":"www.runoob.com" },` 
       `{ "name":"google" , "url":"www.google.com" },` 
       `{ "name":"微博" , "url":"www.weibo.com" }`
       ]`
    

与 XML 相同之处

  • JSON 是纯文本
  • JSON 具有"自我描述性"(人类可读)
  • JSON 具有层级结构(值中存在值)
  • JSON 可通过 JavaScript 进行解析
  • JSON 数据可使用 AJAX 进行传输

与 XML 不同之处

  • 没有结束标签
  • 更短
  • 读写的速度更快
  • 能够使用内建的 JavaScript eval() 方法进行解析
  • 使用数组
  • 不使用保留字‘
  • 最大的不同是XML 需要使用 XML 解析器来解析,JSON 可以使用标准的 JavaScript 函数来解析。

JSON 值

JSON 值可以是:

  • 数字(整数或浮点数)
    { “age”:30 }

  • 字符串(在双引号中){ “age”:“30” }

  • 逻辑值(true 或 false){ “flag”:true }

  • 数组(在中括号中)

        "sites": [
            { "name":"菜鸟教程" , "url":"www.runoob.com" }, 
            { "name":"google" , "url":"www.google.com" }, 
            { "name":"微博" , "url":"www.weibo.com" }
            ]
    
  • 对象(在大括号中)

    { "name":"菜鸟教程" , "url":"www.runoob.com" }
    
  • null,

    { "runoob":null }
    

访问

sites[0].name;

修改,sites[0].name=“菜鸟教程”;

使用fastjson来处理json

// 把JSON文本parse为JSONObject或者JSONArray
public static final Object parse(String text);
// 把JSON文本parse成JSONObject 
public static final JSONObject parseObject(String text)// 把JSON文本parse为JavaBean
public static final <T> T parseObject(String text, Class<T> clazz);
// 把JSON文本parse成JSONArray
public static final JSONArray parseArray(String text); 
//把JSON文本parse成JavaBean集合 
public static final <T> List<T> parseArray(String text, Class<T> clazz); 
// 将JavaBean序列化为JSON文本 
public static final String toJSONString(Object object); 
// 将JavaBean序列化为带格式的JSON文本 
public static final String toJSONString(Object object, boolean prettyFormat); 
//将JavaBean转换为JSONObject或者JSONArray。
public static final Object toJSON(Object javaObject); 
// 1.测试将一个【对象】转换成【json字符串】
String jsonString = JSONObject.toJSONString(new Student("中国",66));
System.out.println("********测试将一个【对象】转换成【json字符串】********");
System.out.println(jsonString);

// 2.测试将一个【json字符串】转换成【对象】
Student person1 = JSONObject.parseObject(jsonString, Student.class);
System.out.println("********测试将一个【json字符串】转换成【对象】********");
System.out.println(person1);

// 3.测试将【多个对象】转换成【json字符串数组】
String jsonString1 = JSONArray.toJSONString(Arrays.asList(new Student("测试2",19), new Student("测试3", 20)));
System.out.println("********测试将【多个对象】转换成【json字符串数组】********");
System.out.println(jsonString1);

// 4.测试将【josn字符串数组】转换成多个对象
List<Student> people = JSONArray.parseArray(jsonString1, Student.class);
System.out.println("********测试将【josn字符串数组】转换成多个对象********");
System.out.println(people);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FsK7qqVk-1651801436203)(C:\Users\lcy\AppData\Roaming\Typora\typora-user-images\image-20210707111909146.png)]

.parseArray(jsonString1, Student.class);
System.out.println(“测试将【josn字符串数组】转换成多个对象”);
System.out.println(people);


[外链图片转存中...(img-FsK7qqVk-1651801436203)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图图大魔王_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值