简介:
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 )();
搞定,运行:
点击:
今天的文章ajax数据传输方式_ajax获取json分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/53105.html