json-lib简单处理json和对json的简单介绍
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的简单介绍的更多相关文章
- Json lib集成stucts2的使用方法 抛出 NestableRuntimeException异常的解决办法
首先贴出struts 2.3.16需要导入的包 因为使用的是2.3 版本,必须要导入这个包,否则会报java.lang.NoClassDefFoundError: org/apache/commons ...
- 使用JsonConfig控制JSON lib序列化
将对象转换成字符串,是非常常用的功能,尤其在WEB应用中,使用 JSON lib 能够便捷地完成这项工作.JSON lib能够将Java对象转成json格式的字符串,也可以将Java对象转换成xml格 ...
- Atitit.json类库的设计与实现 ati json lib
Atitit.json类库的设计与实现 ati json lib 1. 目前jsonlib库可能有问题,可能版本冲突,抛出ex1 2. 解决之道:1 2.1. 自定义json解析库,使用多个复合的js ...
- 极力推荐一个简单好用的C++JSON库
极力推荐一个简单好用的C++JSON库CJsonObject,让使用json如使用C++原生的结构体那般方便,随心所欲.CJsonObject是个优秀的C++JSON库,也许会是你见过的最为简单易 ...
- 很傻很二很简单的一个问题,json键值为变量如何取值
js里的json的键值是变量的话,那么传统的做法似乎不管用了. 例如: var json={'a':'123','b':'999'} json.a得到123,如果a用变量表示呢,有笨法for循环 ...
- jquery简单ajax示例_读取json文件数据
来自于<jquery权威指南> -------------------------------------- 点击button后,获取到json文件数据,显示如下: Json文件: [ { ...
- json相关类库,java对象与json相互转换
有效选择七个关于Java的JSON开源类库 转自:http://www.open-open.com/lib/view/open1397870197828.html 翻译: (英语原文:http://w ...
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
先看一下我要实现的功能界面: 这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...
- Json序列化之.NET开源类库Newtonsoft.Json的研究
一.Json简介 JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集. JSON采用完全独立于语言的文 ...
- json学习系列(1)-使用json所要用到的jar包下载
内容来源于互联网. json是个非常重要的数据结构,在web开发中应用十分广泛.每个开发者都应该好好的去研究一下json的底层实现.在使用json之前首先要明白需要哪些jar文件,初次使用的时候很容易 ...
随机推荐
- web 开发之js---HTML5之广播聊天室
那个头标题很有意思js做的 http://www.cnblogs.com/xgao/p/4200985.html
- android Notification 的使用(锁定通知栏)
近期一直在研究 android .并一边研究一边做应用.当中遇到了把程序通知常驻在 Notification 栏,而且不能被 clear 掉(就像android QQ一样)的问题.经过研究实现了其功能 ...
- android--SDK Manager下载Connection to http://dl-ssl.google.com refused
错误 Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-6.xml, reason: Connec ...
- iOS 企业版 安装失败 原因
首先要吐槽下国内的论坛水分略多,以下问题大多是查询stackoverflow等论坛解决的.推荐一款软件,Log Guru,用来查看app安装时的系统日志,很多问题要看日志才知道错误点. 1.首先有几 ...
- [笔记]我的Linux入门之路 - 02.***-Qt5配置
作为一个学习中的程序员,查wiki等,***肯定是刚需.况且没有它很多东西都下不下来.我在windows环境下使用的是shadowsocks,那么在linux下也使用它. 一.SS版本 SS版本众多, ...
- debian切换sh shell到bash shell
1 安装dpkg-reconfigure命令 切换到root账户即可. 2 dpkg-reconfigure dash 选择no
- Is this its limit?
import sys import os curPath = os.path.abspath(os.path.dirname(__file__)) rootPath = os.path.split(c ...
- Linux学习路线指南
转载的,感觉写的挺好的,我自己知识复制了下,忘记了转载地址,抱歉! Linux学习路线指南 很多同学接触Linux不多,对Linux平台的开发更是一无所知.而现在的趋势越来越表明,作为一个优秀的软件开 ...
- lua调试小技巧
lua中,如果碰到某个属性值改变了,但是修改的地方又特别多,调试就特别麻烦了,有个小技巧,直接贴代码 local m = { __index = function( t, k ) ...
- 初步jmeter安装与使用
前言,最近公司做了面向全国用户的教育平台,由于测试人员以功能测试为主,于是接口代码压测就被开发揽了,这就开始倒腾jmeter了,其实我想对于java,我更愿意用Python的工具,毕竟我爬虫时用的Py ...