简介:
JavaScript中执行json的函数是eval()(注意:在使用的时候eval("(" + json字符串 + ")") 两边要加括号)
但是值得注意的是eval()方法是危险的,可以使用Function()来代替;
JSON: JavaScript Object Notation(JavaScript 对象标记法)。
JSON 是一种存储和交换数据的语法。
JSON 是通过 JavaScript 对象标记法书写的文本。
交换数据
当数据在浏览器与服务器之间进行交换时,这些数据只能是文本。
JSON 属于文本,并且我们能够把任何 JavaScript 对象转换为 JSON,然后将 JSON 发送到服务器。
我们也能把从服务器接收到的任何 JSON 转换为 JavaScript 对象。
以这样的方式,我们能够把数据作为 JavaScript 对象来处理,无需复杂的解析和转译。
JSON 值
在 JSON 中,值必须是以下数据类型之一:
- 字符串
- 数字
- 对象(JSON 对象)
- 数组
- 布尔
- null
在 JavaScript 中,以上所列均可为值,外加其他有效的 JavaScript 表达式,包括:
- 函数
- 日期
- undefined
为什么 JSON 比 XML 更好?
- XML 比 JSON 更难解析。
- JSON 被解析为可供使用的 JavaScript 对象。
对于 AJAX 应用程序,JSON 比 XML 更快更易用:
使用 XML
- 读取 XML 文档
- 使用 XML DOM 遍历文档
- 提取变量中存储的值
使用 JSON
- 读取 JSON 字符串
- JSON.Parse JSON 字符串
josn应用:
新建一个javaweb工程JsonPro
并新建一个servlet文件:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@SuppressWarnings("serial")
@WebServlet("/JServlet")
public class JServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String s = "{\"name\":\"zhangsan\", \"age\":18 , \"sex\":\"nan\"}";
response.getWriter().print(s);
System.out.print(s);
}
}
给客户端传入json格式的字符串;
然后新建JSP文件:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JSON</title>
<script>
window.onload = function(){
// 找到按钮以触发事件
var btn = document.getElementById("btn");
var h3 = document.getElementById("h3");
btn.onclick = function(){
// 创建异步对象
var xp = new XMLHttpRequest();
// 打开连接
xp.open("GET","/JsonPro/JServlet",true);
// 发送请求
xp.send(null);
// 状态变化事件
xp.onreadystatechange = function(){
if(xp.readyState == 4 && xp.status == 200){
// 接收响应的值
var text = xp.responseText;
// 执行json
var person = eval("(" + text + ")");
var s = person.name + "、" + person.age + "、" + person.sex;
h3.innerHTML = s;
}
}
}
}
</script>
</head>
<body>
<h1> Josn -- HelloWorld </h1>
<button id="btn">点击按钮</button>
<h3 id="h3"></h3>
</body>
</html>
上面的eval()方法可以使用Function()来代替:
var person = new Function('return' + text )();
搞定,运行:
点击:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)