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 数据操作的更多相关文章

  1. python 发送json数据操作实例分析 - python

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 本文实例讲述了python 发送json数据操作.分享给大家供大家参考,具体如下: # !/usr/bin/env py ...

  2. ajax 返回json数据操作

    例子: $.ajax({ url: "<?=Url::toRoute('add-all-staff')?>", type: 'get', dataType: 'json ...

  3. python json 数据操作

    python 有专门针对 json 操作的函数 #!/usr/bin/python3 import json mytest_js = { "a" : 1, "b" ...

  4. SparkSQL JSON数据操作(1.3->1.4)

    1.用户自定义schema data json串格式如下: { "partner_code": "demo", "app_name": &q ...

  5. js常用JSON数据操作

    JSON字符串: var  str = '{"name": "jack", "age": 13}'; JSON对象: var obj = { ...

  6. json数据操作

    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> ...

  7. Java读取json文件并对json数据进行读取、添加、删除与修改操作

    转载:http://blog.csdn.net/qing_yun/article/details/46865863#t0   1.介绍 开发过程中经常会遇到json数据的处理,而单独对json数据进行 ...

  8. js之操作JSON数据

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...

  9. js中如何操作json数据

    一.要想熟练的操作json数据,就先要了解json数据的结构,json有两种结构:对象和数组. 1.对象 一个对象以“{”开始,“}”结束.每个“名称”后跟一个“:”:“‘名称/值’ 对”之间使用“, ...

随机推荐

  1. 一个简单的java网络通信例子

    先建立2个项目,分别是请求端和响应端,端口改成不一样的就行,比如请求端是8080,响应端是8081 废话不多说,直接上代码 请求端的Controller层 @GetMapping("/req ...

  2. iOS开发 字符串的转化 小技巧

    /字典或者数组转化为nsstring NSArray *arr = [NSArray arrayWithObject:@"1"]; NSString *str = [arr JSO ...

  3. 配置SQL Server on Linux(2)

    1. 前言 前一篇配置SQL Server on Linux(1),地址:http://www.cnblogs.com/fishparadise/p/8125203.html ,是关于更改数据库排序规 ...

  4. app支付宝快速入门

    最近在做个车辆认证app,需要用到支付宝付款.前端使用H5,框架是react,后台是java.app支付与普通网页支付差别还是很大,我这里主要对于app支付做说明 1.让财务开通支付宝账号(需要企业税 ...

  5. Mac和Xcode常用的快捷键

    Mac电脑一般都不怎么用鼠标,因此除了触摸屏的各种双指.三指甚至四指的操作之外,快捷键的使用可以带来非常大的便利,本文则主要收集整理了自己在Mac常规和Xcode开发过程中常用的一些快捷键. 一.Ma ...

  6. ArcGIS API for JavaScript 4.2学习笔记[22] 使用【QueryTask类】进行空间查询 / 弹窗样式

    上一篇写道,使用Query类进行查询featureLayer图层的要素,也简单介绍了QueryTask类的使用. 这一篇博文继续推进,使用Query类和QueryTask类进行空间查询,查询USA的著 ...

  7. openstack操作之一 命令行

    在openstack环境中提供了多种操作虚拟机的方法,有最简单直接的dashborad界面,有不直观但高效的命令行,还有进阶版的postman调用openstack restfulapi和命令行中使用 ...

  8. fdisk 命令详解

    fdisk  作用: 查看磁盘实体使用情况,也可对硬盘分区. 选项:  -b 分区大小 -l  列出指定的外围设备的分区表状况 -s 分区编号, 将指定的分区大小输出到标准输出上, 单位为区块 -u ...

  9. pycharm2017.3专业版激活注册码

    pycharm作为一个不错的python编程的ide很有用处 这里拔出一段专业版的注册码,社区版用起来确实着实让人着急. 2017-12-1921:40:38 EB101IWSWD-eyJsaWNlb ...

  10. 3、公司开会的必要性 - CEO之公司管理经验谈

    这几天在考虑开公司的问题.以前也有想过开公司创业,但是由于资金和团队问题搁置了.今天在网上看到了一篇文“[转]微软是这么管理员工的!你一定向往!”,想起以前在其它公司时开的一些会议的问题,就写了此文, ...