一、JSON数据

JSON:JavaScript 对象表示法(JavaScript Object Notation)。根据这个定义,需要稍微了解JavaScript对象的格式

var obj={
"name":"liming",
"age":12
}

JSON 是存储和交换文本信息的语法。类似 XML。
JSON 比 XML 更小、更快,更易解析。

什么是 JSON ?

  • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
  • JSON 是轻量级的文本数据交换格式
  • JSON 独立于语言
  • JSON 具有自我描述性,更易理解

JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。


JSON - 转换为 JavaScript 对象

  • JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。

小程序:

<p>
name:<span id="jname"></span><br/>
age:<span id="jage"></span><br/>
address:<span id="jaddress"></span><br>
<script type="text/javascript">var JSONObject={"name":"BIll gates","address":"fifth avenue new york 666","age":56};document.getElementById('jname').innerHTML=JSONObject.namedocument.getElementById('jaddress').innerHTML=JSONObject.addressdocument.getElementById('jage').innerHTML=JSONObject.age
</script>
</p>

JSON语法:

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

  • 数据在名称/值对中:{“name”: “James”}
  • 数据由逗号分隔:{“name”: “James”,“age”,12}
  • 花括号保存对象{“name”: “James”,“age”,12}
  • 方括号保存数组:
    {
    “employees”: [
    { “firstName”:”John” , “lastName”:”Doe” },
    { “firstName”:”Anna” , “lastName”:”Smith” },
    { “firstName”:”Peter” , “lastName”:”Jones” }
    ]
    }

JSON 值
JSON 值可以是:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中) null

JSON 使用 JavaScript 语法

var employees=[{ "firstName":"John" , "lastName":"Doe" },{ "firstName":"Anna" , "lastName":"Smith" },{ "firstName":"Peter" , "lastName":"Jones" }];访问第1项
employees[0].firstName

JSON 文件

JSON 文件的文件类型是 ".json"
JSON 文本的 MIME 类型是 "application/json"

把 JSON 文本转换为 JavaScript 对象

JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSON 数据转换为 JavaScript 对象,然后在网页中使用该数据。

<p>
name:<span id="jname"></span><br/>
age:<span id="jage"></span><br/>
address:<span id="jaddress"></span><br>
<script type="text/javascript">var txt='{"name":"BIll gates","address":"new york","age":"56"}';
txt=eval("("+txt+")");document.getElementById('jname').innerHTML=txt.name
document.getElementById('jaddress').innerHTML=txt.address
document.getElementById('jage').innerHTML=txt.age
</script>
</p>

上面将文本格式转换成了JSON对象。
由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。
eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误

二、JSON简单应用

在与后台交互的时候,如果后台传回的数据不是JSON格式的数据,或者数据格式有问题,那么前台将无法获得正确的数据。
前台(这里是JSP页面):

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script src="js/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">function getJson(){alert("call getjson");$.getJSON("GetJsonServlet",function(data){$.each(data,function(i,value){  alert(value);});});}function jsonGet(){$.ajax({dataType:"json",url:"GetJsonServlet",success:function(data){alert("succeed");}});}
</script>
<p>
name:<span id="jname"></span><br/>
age:<span id="jage"></span><br/>
address:<span id="jaddress"></span><br>
<script type="text/javascript">var JSONObject={"name":"BIll gates","address":"fifth avenue new york 666","age":56};var txt='{"name":"BIll gates","address":"new york","age":"56"}';txt=eval("("+txt+")");document.getElementById('jname').innerHTML=txt.namedocument.getElementById('jaddress').innerHTML=txt.addressdocument.getElementById('jage').innerHTML=txt.age
</script>
</p>
<a href="javascript:getJson();">getJson</a>
<a href="javascript:jsonGet();">getJson</a>
</body>
</html>
jQuery.getJSON( url [, data ] [, success ] )urlType: StringA string containing the URL to which the request is sent.dataType: PlainObject or StringA plain object or string that is sent to the server with the request.successType: Function( PlainObject data, String textStatus, jqXHR jqXHR )A callback function that is executed if the request succeeds.----------$.ajax({dataType: "json",url: url,data: data,success: success
});

上面两个方法是比较常用的前台异步传输
后台(servlet):

import java.awt.List;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@WebServlet("/GetNameServlet")
public class GetJsonServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** Default constructor. */public GetJsonServlet() {// TODO Auto-generated constructor stub}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubresponse.setContentType( "application/json");System.out.println("123");Map<String,String>map=new HashMap<>();map.put("name", "liming");map.put("age", "12");ArrayList<String> listString=new ArrayList<>();listString.add("name");listString.add("age");JSONArray jsonObj=new JSONArray();jsonObj.addAll(listString);PrintWriter out =response.getWriter();System.out.println(jsonObj);out.println(jsonObj);//"{\"age\":12,\"name\":14}"或者"[12,23,34,45]"//这里是将数据转化成JSON格式,否则前台获取数据会出问题out.flush();out.close();}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}

JSON数据 与 JSON数据的使用相关推荐

  1. tp数组转为json_数据存储—JSON

    JSON文件存储 JSON全称JavaScript Object Notation,也就是JavaScript对象标记,它通过对象和数组的组合来表示数据. 1.对象和数组 对象:在JavaScript ...

  2. retrofit2 发送json数据_SQLmap JSON 格式的数据注入

    现在越来越多的网站开始使用 RESTFUL 框架,数据传输使用 JSON,那么这种情况下我们如何使用 SQLmap 进行自动化注入呢? 能使用 * 指定注入点吗? 先说结论:对于 JSON 数据的 S ...

  3. jquery ajax 与 flask 传输 json 并且 提取ajax数据作为全局变量

    jquery ajax 与 flask 传输 json 并且 提取ajax数据作为全局变量 jquery <!DOCTYPE html> <html lang="en&qu ...

  4. ajax请求json和xml数据及对json和xml格式数据的解析

    ajax请求json和xml数据及对json和xml格式数据的解析 一.ajax请求json数据并解析 ajax的写法: json数据解析: 请求json经常出现的跨域报错: 二.ajax请求xml数 ...

  5. mysql json 函数_MYSQL 开发设计表是硬邦邦的VARHCAR 还是JSON TYPE 来处理数据更香

    开发在使用MySQL中,建立比较大的VARCHAR字段来存储SQL执行的语句或者利用MYSQL 来存储什么VARCHAR(1000) VARCHAR(2000) 之类的事情比比皆是,实际上存储超高的字 ...

  6. Struts2中采用Json返回List对象数据为空解决方案

    Struts2中采用Json返回List对象数据为空解决方案 参考文章: (1)Struts2中采用Json返回List对象数据为空解决方案 (2)https://www.cnblogs.com/wa ...

  7. python中json模块_Python使用内置json模块解析json格式数据的方法

    本文实例讲述了Python使用内置json模块解析json格式数据的方法.分享给大家供大家参考,具体如下: Python中解析json字符串非常简单,直接用内置的json模块就可以,不需要安装额外的模 ...

  8. 利用js-xlsx.js插件实现Excel文件导入并解析Excel数据成json数据格式

    <!--本文转载于网络,有太多一样的文章,不知道原作者是哪位了,就不注明出处了.这里记载下来,用于自己的学习借鉴--><!DOCTYPE html><html lang= ...

  9. GoJS超详细入门(插件使用无非:引包、初始化、配参数(json)、引数据(json)四步)...

    GoJS超详细入门(插件使用无非:引包.初始化.配参数(json).引数据(json)四步) 一.总结 一句话总结:插件使用无非:引包.初始化.配参数(json).引数据(json)四步. 1.goj ...

  10. 将一张表里的数据转换为json字符串

    1.创建一个JsonHelper.cs类,注意要添加引用using Newtonsoft.Json; public class JsonHelper{public JsonHelper() {//// ...

最新文章

  1. sqlmap绕过d盾_WEBSHELL免杀绕过WAF思路amp;方法(一)
  2. 斯坦福大学新研究:声波、光波等都是RNN
  3. 图片缓存之内存缓存技术LruCache,软引用
  4. 好用的工具---screen命令
  5. oracle sql 匹配 一位,oracle -sql模式匹配
  6. Java中的LinkedList
  7. python 矩阵库_NumPy 矩阵库(Matrix)
  8. 关于 iOS 证书,你必须了解的知识
  9. 溢出检测单符号位法_设计经验:如何用三轴加速度传感器检测倾斜角?
  10. HDU 1255 覆盖的面积(线段树+扫描线)
  11. Android音视频【十一】视频混音
  12. 凯迪拉克故障u1510案例_凯迪拉克XTS变速箱维修,无倒挡故障,自动变速箱维修案例...
  13. python等比例压缩图片_Python批量按比例缩小图片脚本分享
  14. iOS遇到问题小总结
  15. 一个B站下载视频的网站
  16. Baker Tilly与RGL Forensics宣布合并
  17. 请你相信心有多大,舞台就会有多大
  18. 自然语言处理(一)——中英文分词
  19. Excel条形图也可以变身高大上
  20. [论文总结] 深度学习在农业领域应用论文笔记5

热门文章

  1. 微知识|人工智能 第一期
  2. 怎么释放C盘空间?清理C盘空间的4大方法分享!
  3. Aiml智能标记语言规范(20201216)
  4. 出现报错No such file or directory: experiments/coco/w32/w32_4x_reg03_bs10_512_adam_lr1e-3_coco_x140.yaml
  5. java中io流,Reader和Writer,InputStream和OutputStream,转换流 InputStreamReader 和 OutputStreamWriter
  6. 新建网站如何跟服务器连接,flashfxp怎么用(新建添加网站[站点]连接)
  7. 垃圾邮件、欺骗和网络钓鱼,如何防止电子邮件安全意识的威胁
  8. Access数据库教程_如何进行C#连接Access数据库的细节操作?
  9. 2024在职考研|MBA/MPA/MEM管理类硕士报考流程及基础问题扫盲
  10. 函数对称性常见公式_函数的各种对称性