JSON

1.json是什么?
*它是js提供的一种数据交换格式

2.json的语法
*{}:是对象!
>属性名必须使用双引号括起来!单引号不行!!!
>属性值:
*null
*数值
*数组,使用[]括起来
*对象
*字符串
*boolean值
3.应用json
*var person={"name":"zhangsan","password":"961012gz","age":12};
函数eval():
将字符串当成js代码执行,一般格式为: eval("("+str+")");返回的是一个对象

4.json与xml比较
*可读性:xml胜出
*解析难度:json主场优势
*流行度:xml流行很多年

-------------------------------
json-lib
1、是什么?可以将json数据转换成json字符串
2、导入jar包 略
3、核心类
*JSONObject--》Map
>toString()
>JSONObject map=JSONObject.fromObject(person); 把对象转换成JSONObject独享
*JSONArray-->List
>toString
>JSONArray jsonArray=JSONObject.fromObject(list):把list转化成为JSONArray对象

了解json数据的小例子:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'json1.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript">
window.onload=function(){
//var person={"name":"guozhen","age":12,"sex":"男"};
//alert(person.name+" ,"+person.age+" ,"+person.sex); //var str="{\"name\":\"guozhen\",\"age\":12,\"sex\":\"男\"}";
//var person=eval("("+str+")");
//alert(person.name+" ,"+person.age+" ,"+person.sex); var str="1+2";
var num=eval("("+str+")");
alert(num);
}
</script>
</head> <body>
<h1>json的简单应用!</h1>
</body>
</html>

使用json数据类型进行简单异步刷新:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'json2.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript">
window.onload=function(){
var btn=document.getElementsByTagName("button")[0];
btn.onclick=function(){
var xmlHttp=createXMLHttpRequest();
xmlHttp.open("GET","<c:url value='/AServlet'/>",true);
xmlHttp.send(null);
xmlHttp.onreadystatechange=function(){
if(xmlHttp.status==200 && xmlHttp.readyState==4){
var text=xmlHttp.responseText;
var person=eval("("+text+")");
var h3=document.getElementsByTagName("h3")[0];
h3.innerHTML="name:"+person.name+",age:"+person.age+",sex:"+person.sex;
}
};
};
}; function createXMLHttpRequest(){
try{
return new XMLHttpRequest();
}catch(e){
try{
return new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
return new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
alert("哥们,你用的什么浏览器啊!");
throw e;
}
}
}
}
</script>
</head> <body>
<button>点击我</button>
<h1>JSON之Hello World</h1>
<h3></h3>
</body>
</html>

json2.jsp

package cn.itcast.web.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class AServlet extends HttpServlet{ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String str="{\"name\":\"zhangSan\",\"age\":18,\"sex\":\"male\"}";
resp.getWriter().print(str);
} }

AServlet

使用json-lib的操作例子:

package cn.itcast.demo1;

import java.util.ArrayList;
import java.util.List; import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import org.junit.Test; public class Demo1 { /**
* JSONObject
*/
/*
* 当map用
*/
@Test
public void fun1(){
JSONObject map=new JSONObject();
map.put("name", "zhangSan");
map.put("age", 23);
map.put("sex","male"); String s=map.toString();
System.out.println(s);
} /*
* 当你已经有一个Person对象时,可以把Person转成JSONObject对象
*/
@Test
public void fun2(){
Person p=new Person("liSi",32,"male");
//把对象转换成JSONObject类型
JSONObject s=JSONObject.fromObject(p);
System.out.println(s);
} /**
* JSONArray
*/
@Test
public void fun3(){
Person p1=new Person("zhanSan",32,"male");
Person p2=new Person("liSi",23,"women");
JSONArray list=new JSONArray();
list.add(p1);
list.add(p2);
System.out.println(list);
} /*将对象集合转换成为JSONArray*/
@Test
public void fun4(){
Person p1=new Person("zhanSan",32,"male");
Person p2=new Person("liSi",23,"women");
List<Person> li=new ArrayList<Person>();
li.add(p1);
li.add(p2);
System.out.println(JSONArray.fromObject(li));
} public static void main(String[] args) {
Demo1 d=new Demo1();
d.fun4();
} }

Demo1.java

package cn.itcast.demo1;

public class Person {
private String name;
private int age;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Person() {
super();
// TODO Auto-generated constructor stub
}
public Person(String name, int age, String sex) {
super();
this.name = name;
this.age = age;
this.sex = sex;
} }

Person.java

json-lib简单处理json和对json的简单介绍的更多相关文章

  1. Json lib集成stucts2的使用方法 抛出 NestableRuntimeException异常的解决办法

    首先贴出struts 2.3.16需要导入的包 因为使用的是2.3 版本,必须要导入这个包,否则会报java.lang.NoClassDefFoundError: org/apache/commons ...

  2. 使用JsonConfig控制JSON lib序列化

    将对象转换成字符串,是非常常用的功能,尤其在WEB应用中,使用 JSON lib 能够便捷地完成这项工作.JSON lib能够将Java对象转成json格式的字符串,也可以将Java对象转换成xml格 ...

  3. Atitit.json类库的设计与实现 ati json lib

    Atitit.json类库的设计与实现 ati json lib 1. 目前jsonlib库可能有问题,可能版本冲突,抛出ex1 2. 解决之道:1 2.1. 自定义json解析库,使用多个复合的js ...

  4. 极力推荐一个简单好用的C++JSON库

      极力推荐一个简单好用的C++JSON库CJsonObject,让使用json如使用C++原生的结构体那般方便,随心所欲.CJsonObject是个优秀的C++JSON库,也许会是你见过的最为简单易 ...

  5. 很傻很二很简单的一个问题,json键值为变量如何取值

    js里的json的键值是变量的话,那么传统的做法似乎不管用了. 例如: var json={'a':'123','b':'999'}    json.a得到123,如果a用变量表示呢,有笨法for循环 ...

  6. jquery简单ajax示例_读取json文件数据

    来自于<jquery权威指南> -------------------------------------- 点击button后,获取到json文件数据,显示如下: Json文件: [ { ...

  7. json相关类库,java对象与json相互转换

    有效选择七个关于Java的JSON开源类库 转自:http://www.open-open.com/lib/view/open1397870197828.html 翻译: (英语原文:http://w ...

  8. 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

      先看一下我要实现的功能界面:   这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...

  9. Json序列化之.NET开源类库Newtonsoft.Json的研究

     一.Json简介 JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集. JSON采用完全独立于语言的文 ...

  10. json学习系列(1)-使用json所要用到的jar包下载

    内容来源于互联网. json是个非常重要的数据结构,在web开发中应用十分广泛.每个开发者都应该好好的去研究一下json的底层实现.在使用json之前首先要明白需要哪些jar文件,初次使用的时候很容易 ...

随机推荐

  1. Sql Server 查询一段日期内的全部礼拜天

    /* 查询一段日期内的全部礼拜天 @startdate 開始日期 @enddate 结束日期 */ declare @startDate datetime declare @endDate datet ...

  2. zookeeper 客户端

    http://blog.csdn.net/lzy_lizhiyang/article/details/48518731 http://blueyan.iteye.com/blog/2298276 ht ...

  3. CSS3 - 鼠标移入移出时改变样式

    1,使用伪类实现样式切换伪类是CSS2.1时出现的新特性,让许多原本需要JavaScript才能做出来的效果使用CSS就能实现.比如实现下面的鼠标悬停效果,只要为:hover伪类应用一组新样式即可.当 ...

  4. 2820: YY的GCD

    2820: YY的GCD Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1693  Solved: 901[Submit][Status][Discu ...

  5. SpringMVC结合REST

    一.什么是REST REST即 Representational State Transfer,也就是(资源)表现层状态转化.资源是指网络上的一个实体或者说是网络上的一个具体信息. 每种资源对应一个特 ...

  6. docker笔记一

    docker概念介绍: docker 是一个装在linux上的普通的软件.利用docker的命令,可以创建一个带有linux操作系统的镜像文件,docker命令运行这个带的linux操作系的镜像文件, ...

  7. Hibernate Criteria 查询使用

    转载 http://blog.csdn.net/woshisap/article/details/6747466 Hibernate 设计了 CriteriaSpecification 作为 Crit ...

  8. php自定义函数: 加密下载地址

    function getdownurl($downurl, $extime = "3600", $serverid = 1) { if (empty($downurl)) { re ...

  9. PAT 1062. 最简分数(20)

    一个分数一般写成两个整数相除的形式:N/M,其中M不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N1/M1 和 N2/M2,要求你按从小到大的顺序列出它们之间分母 ...

  10. CALL TRANSFORMATION 的方法生成XML文件

    *&---------------------------------------------------------------------**& Report  Z_BARRY_X ...