网站首页 > 技术文章 正文
JSON详解
一、JSON的概述及其使用
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于javascript的一个子集。JSON是的数据交换语言, 易于人阅读和编写,同时也易于解析和生成(一般用于提升网络传输速率)。JSON 可以将 JavaScript对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序,但是JavaScript很容易解释它, JSON 可以表示比"名称 / 值对"更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表
JSON使用的示例如下所示:
<input type="button" value="json测试" onclick="jsonTest()"/>
<script>
function jsonTest()
{
var jsonStr={
"sid":"s001",
"sname":"lily",
"address":"北京海淀"
}
alert(jsonStr.sid);
alert(jsonStr.sname);
alert(jsonStr.address);
}
</script>
JSON嵌套的语法格式如下:
<input type="button" value="json测试" onclick="jsonTest()"/>
<script>
function jsonTest()
{
var j={"name":"Michael","address":
{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}
};
document.write(j.name);
document.write(j.address.city);
}
</script>
二、将页面对象转化为json字符串并传递后台解析
1、将页面的数据对象转化为json 字符串
使用+拼页面的字符串,但是使用+违反面向对象原则,如果页面数据对象比较多,使用 +很容易出问题。这里我们使用struts2来操作json
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<script src="js/jquery-1.6.2.js"></script>
<script src="js/json2.js"></script>
<form>
用户ID:<input type="text" id="usersid"/><br>
用户名:<input type="text" id="usersname"/><br>
密码:<input type="password" id="userspwd"/><br>
<input type="button" onclick="jsonTest()" value="确定"/>
</form>
<script>
function jsonTest()
{
var usersid_v=$("#usersid").val();
var usersname_v=$("#usersname").val();
var userspwd_v=$("#userspwd").val();
//构造对象
var jsonObj=new toJSONString("u001",'lily','123');
//将构造好的对象转化为json字符串
var jsonStr=JSON.stringify(jsonObj);
alert(jsonStr);
}
//构造函数:将页面字段构造成json对象
function toJSONString(usersid,usersname,userspwd) {
this.uid=usersid;
this.uname=usersname;
this.upwd=userspwd;
}
</script>
2、将json字符串传到后台
(1)、使用jquery的ajax
var jsonStr=JSON.stringify(jsonObj);
//alert(jsonStr);
$.post("/json001/sSON001Action",{myjsonStr:jsonStr},
function(data){
alert(data);
}
);
(2)、后台
public void json001()throws Exception{
System.out.println("进入 JSON001Action...");
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
String jsonStr = request.getParameter("myjsonStr");
System.out.println(jsonStr);
JSONObject jsonObj = JSONObject.fromObject(jsonStr);
String uid=(String)jsonObj.get("uid");
String uname=(String)jsonObj.get("uname");
String upwd=(String)jsonObj.get("upwd");
System.out.println(uid);
System.out.println(uname);
System.out.println(upwd);
PrintWriter out = response.getWriter();
out.println("ok");//将ok 写给前台
}
猜你喜欢
- 2024-12-25 Spring Boot整合Spring Cloud GateWay代理第三方应用的调用接口?
- 2024-12-25 Java 近期新闻:Hibernate 6.0、JobRunr 5.0、JHipster 7.8.0
- 2024-12-25 Keycloak Servlet Filter Adapter使用
- 2024-12-25 如何在Spring Boot中保证RESTful接口的安全性?
- 2024-12-25 Java项目实战第6天:登录业务的实现
- 2024-12-25 JavaEE概述总结:Servlet生命周期+JSP内置对象
- 2024-12-25 SpringBoot 无感刷新 Token springboot的token
- 2024-12-25 若依开发框架解析笔记(7)-jwt的应用
- 2024-12-25 Spring MVC中提供了哪些扩展机制?如何使用这些扩展机制?
- 2024-12-25 49个Spring经典面试题总结(附带答案)
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)