JSON 数据操作
2018,狗年。如果在你出生日期的年份上加12等于2018的话,私聊我,今年是你的本命年,你得发红包!!!
子(鼠)、丑(牛)、寅(虎)、卯(兔)、辰(龙)、巳(蛇)、午(马)、未(羊)、申(猴)、酉(鸡)、戌(狗)、亥(猪)
JSON:JavaScript 对象表示法(JavaScript Object Notation),是轻量级的文本数据交换格式。类似 XML,但比XML 更小、更快,更易解析。
从上面这句话可以看出:<1> JSON 是纯文本
<2> JSON 具有层级结构(类似XML,键值对)
<3> JSON 可通过 JavaScript 进行解析
个人理解为:JSON 是 在js中处理对象和交换数据的,采用键值对方式存贮数据的文本轻量级格式。
JSON 语法:<1> 数据在键/值对中
<2> 数据由逗号分隔
<3> 花括号保存对象 ---> { "name":"zhangs" , "year":"18" }
<4> 方括号保存数组 ---> { "employees" :[{ " name":"zhangs" , "year":"18" } ,{ " name":"zhangs" , "year":"18" }] } (多个对象)
获取数据:employees[0].name;
接下来,就讲解几种常用的 json 数据处理 (java 和 jsp)
一、jsp -->java
1.json 操作多个实体对象(列如保存提交多个对象,采用序列化表单,json转换) jsp
<input type="hidden" id="inputForm" name="inputForm"/>
js
var inputForm = $("#inputForm").serializeObject();
$("#inputForm").val(JSON.stringify(inputForm));
java
String inputForm = request.getParameter("inputForm");
Employee employee = (Employee) JsonMapper.fromJsonString(inputForm, Employee.class); //(转成实体对象,不能获取冗余的其他对象)
JSONObject json = new JSONObject(inputForm); //(转成Json对象)
String name = json.getString("project.name"); //(获取其他对象值)
String linkphone = json.getString("project.linkphone");
二、java -->jsp
1.json 集合转json
java
List<Employee> employeeList = proinfoService.findMapList(employee);
model.addAttribute("employeeList", JsonMapper.getInstance().toJson(employeeList));
js
对于服务器返回的JSON字符串,如果请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,要将该字符串放于eval()中执行一次。
$.each(eval(employeeList),function(n,value) {
String name = value.name;
});
由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。
2.json 操作对象集合(用于动态加载集合数据)
java 返回List<Employee>
Page<Employee> page = new Page<Employee>(Integer.valueOf(start), Integer.valueOf(count));
String organId = request.getParameter("organId");
Employee employee = new Employee();
employee.setIntermediaryid(organId);
page = employeeService.findPage(page, employee);
return page.getList(); js
$.ajax({
url: '/outer/getEmployeeList',
type: 'post',
data: 'start='+start+'&count='+pageSize+'&organId='+organId,
dataType: 'json',
success: function(data){
var str = "";
for(i = 0; i < data.length; i++){
if(0 == i%2){
//(turnToEmployee(\''+ data[i].id + '\') -- \' 转义 单眼号 ' )
str += '<tr style="background-color:#F4F7FB" onclick="turnToEmployee(\''+ data[i].id + '\')">' + '<td>' + data[i].name+ '</td>';
}else{
str += '<tr onclick="turnToEmployee(\''+ data[i].id + '\')">' + '<td>' + data[i].name+ '</td>';
}
str += '<td>' + data[i].idcard+ '</td>' ;
str += '<td>' + data[i].linkphone+'</td>'
str += '<td>' + data[i].workyear+'</td>'
}
$(".listTable tbody").empty();
$(".listTable tbody").append(str);
}
});
3.很特殊的一种 json 操作String集合
java 返回List<String>
List 中的元素是按照 add 顺序加载的,并且里面有重复的元素。这就是有序可重复的意思。
Set 中的元素并没有按照 add 顺序加载的,并且里面没有重复的元素。这就是无序不可重复的意思。 List<String> temp = Lists.newArrayList();
temp.add(p.getName());
HashSet<String> h = new HashSet<String>(temp); //(用hashSet 去重顺序不变,集合类型得相匹配)
temp.clear();
temp.addAll(h);
return JsonMapper.toJsonString(temp); jsp
$.ajax({
url: "",
type: 'post',
data: '',
dataType: 'json',
async: false,
success: function(data){
$("#"+data[d]).css("background", "#6699FF");
}
});
最后再提两个知识点:JSON.parse() JSON.stringify()
parse 用于从一个字符串中解析出对象 eg:
var str = '{"name":"zhangs","age":"18"}';
JSON.parse(str); -- >name : "zhangs"
-- >age : "18"
stringify 用于把对象解析成字符串 eg:
var obj = {name: "zhangs" , age: "18"};
JSON.stringify(obj); -- > '{"name":"zhangs","age":"18"}';
人依旧,物依然,又是一年;想也好,忘也罢,本是平凡;今儿好,明更好,衷心祝愿;情也真,意也切,常驻心间。提前预祝2018年新年快乐!!!
JSON 数据操作的更多相关文章
- python 发送json数据操作实例分析 - python
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 本文实例讲述了python 发送json数据操作.分享给大家供大家参考,具体如下: # !/usr/bin/env py ...
- ajax 返回json数据操作
例子: $.ajax({ url: "<?=Url::toRoute('add-all-staff')?>", type: 'get', dataType: 'json ...
- python json 数据操作
python 有专门针对 json 操作的函数 #!/usr/bin/python3 import json mytest_js = { "a" : 1, "b" ...
- SparkSQL JSON数据操作(1.3->1.4)
1.用户自定义schema data json串格式如下: { "partner_code": "demo", "app_name": &q ...
- js常用JSON数据操作
JSON字符串: var str = '{"name": "jack", "age": 13}'; JSON对象: var obj = { ...
- json数据操作
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> ...
- Java读取json文件并对json数据进行读取、添加、删除与修改操作
转载:http://blog.csdn.net/qing_yun/article/details/46865863#t0 1.介绍 开发过程中经常会遇到json数据的处理,而单独对json数据进行 ...
- js之操作JSON数据
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...
- js中如何操作json数据
一.要想熟练的操作json数据,就先要了解json数据的结构,json有两种结构:对象和数组. 1.对象 一个对象以“{”开始,“}”结束.每个“名称”后跟一个“:”:“‘名称/值’ 对”之间使用“, ...
随机推荐
- coursera 视频总是缓冲或者无法观看的解决办法
注意!!!该方法针对Windows用户,亲测有效. 1.用管理员权限记事本打开host文件 2.将如下内容复制到文件末尾 52.84.246.90 d3c33hcgiwev3.cloudfront.n ...
- 超级基础的python文件读取
读取文件的两种方式: 1.使用os的open函数: import sys,os r=open("data1.txt","r+") fr=r.readlines( ...
- js中的call()方法与apply()方法
摘自:http://blog.csdn.net/chelen_jak/article/details/21021101 在web前端开发过程中,我们经常需要改变this指向,通常我们想到的就是用cal ...
- elastaticresearch 学习过程
1.在Windows上安装了es 2.在chrome上装了sense 3.尝试创建 es 的模板
- think queue 消息队列初体验
使用的是tp5 自带的消息队列 thinkphp top里的 消息队列框架 think-queue 这是thinkphp官方团队开发的一个专门支持队列服务的扩展包 消息队列应用场景: 消息队列适用于 ...
- 关于php中,记录日志中,将数组转为json信息记录日志时遇到的问题总结
1 中文编码化,无法看到具体的中文,如:你好 => \u4F60\u597D 解决方案:可以使用 json_encode($arr,JSON_UNESCAPED_UNICODE) 转义中文[ ...
- 洛谷 P1485 火枪打怪
题目描述 LXL进入到了一片丛林,结果他发现有n只怪物排成一排站在他面前.LXL有一杆火枪能对付这些怪物.他知道从左至右数第i只怪物的血量是mi.现在LXL可以将一些子弹射向某个怪物.LXL可以控制他 ...
- Android动画(一)-视图动画与帧动画
项目中好久没用过动画了,所以关于动画的知识都忘光了.知识总是不用则忘.正好最近的版本要添加比较炫酷的动画效果,所以也借着这个机会,写博客来整理和总结关于动画的一些知识.也方便自己今后的查阅. Andr ...
- Nginx: http 跳转 https
参考:博文 参考:HTTP 状态码解读 Nginx - rewrite 方式 Nginx Server 配置 server { listen ; server_name www.test.com te ...
- 商业智能(BI)选型手册(转载)
摘自http://articles.e-works.net.cn/bi/Article126429.htm 1.前言 互联网时代企业数据呈现爆发式增长,全面考验着企业的数据处理和分析能力.面对大容量. ...