JSON--JavaScript Object Notation,是一种轻量级的数据交互格式,本质是特定格式的字符串,相比xml更简洁,现在是客户端与服务器端交互的最常用选择,已经很少用xml了

JSON格式:1.JSON对象{key1:value1,key2:value2,}   2.JSON数组[value1,value2]

先考入jar包,其中json.jar是官方jar包,fastjson.jar是阿里巴巴开发的jar包,在解析JSON数据时,官方包不如阿里巴巴的使用方便,可以通过如下代码进行比较:

package com.hanqi.test;

public class User {

    private int userID;
private String userName,password;
public User(int userID, String userName, String password) {
super();
this.userID = userID;
this.userName = userName;
this.password = password;
}
public int getUserID() {
return userID;
}
public void setUserID(int userID) {
this.userID = userID;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User() {
super();
}
@Override
public String toString() {
return "User [userID=" + userID + ", userName=" + userName + ", password=" + password + "]";
}
}
package com.hanqi.test;

import java.util.ArrayList;
import java.util.List; import org.json.JSONException; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; public class TestJSON { public static void main(String[] args) {
//测试JSON解析 //1从对象(集合)到JSON字符串 User u1 = new User(999,"tom","123456"); //导入阿里巴巴 JSON对象 jar包
String ju1=JSONObject.toJSONString(u1);
System.out.println("ju1="+ju1); //集合
List<User> lu = new ArrayList<User>();
lu.add(new User(111,"User1","111"));
lu.add(new User(222,"User2","111"));
lu.add(new User(333,"User3","111"));
lu.add(new User(444,"User4","111")); //导入阿里巴巴 JSON集合 jar包
String jlu = JSONArray.toJSONString(lu);
System.out.println("jlu="+jlu); //2从JSON字符串到集合(对象)
//阿里巴巴JSON 可以直接将JSON字符串转为对象
User u2 =JSONObject.parseObject(ju1,User.class);
System.out.println("u2="+u2); try {
//名字冲突使用全路径 官方jar包
//官方jar包不能直接转为对象,只能获取对象的单个值
org.json.JSONObject jo = new org.json.JSONObject(ju1); int userid = jo.getInt("userID"); //只能获取单个值
System.out.println("userID="+userid); } catch (JSONException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
//字符串集合
//使用阿里巴巴jar包可以直接得到对象的集合
List<User> lu2 = JSONArray.parseArray(jlu,User.class);
//遍历集合
for(User u:lu2)
{ System.out.println(u);
} try {
//使用官方jar包 必须解析JSON数组
org.json.JSONArray ja = new org.json.JSONArray(jlu); //使用官方jar包 解析JSON数组时一次只能获取其中的一个JSON对象
org.json.JSONObject u3= ja.getJSONObject(0); System.out.println("u3="+u3); } catch (JSONException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} } }

最新文章

  1. 通过js对cookie的使用手册
  2. Python&gt;&gt;&gt;使用Python和Pygame创建画板
  3. CoreAnimation-09-模拟时钟
  4. js数据类型和关系运算语法
  5. ABBYY
  6. iOS 热点、通话时候TabView的Frame调整
  7. 常用的Oracle数据库语句 (待更新完毕)
  8. 解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
  9. Web安全测试周末公开班计划5月24、25日开课,欢迎报名参加!
  10. DEV控件的使用(二次封装BaseUI)
  11. 基于FPGA的红外遥控解码与PC串口通信
  12. kali权限提升之本地提权
  13. How Many Triangles (极角排序 + 尺取法)
  14. MySQL实验准备(二)--Python模拟数据(MySQL数据库)
  15. 【HTTP】 Fiddler简介
  16. PHP中cookie思维导图
  17. vue-cli 项目搭建
  18. HUE配置HBase
  19. 第2课 C 到 C++ 的升级
  20. hdu 6311 欧拉回路

热门文章

  1. 自定义ajax小工具以及使用
  2. python-编译安装Python2.7
  3. notepad++如何移除重复的行
  4. NOI 模拟赛 #2
  5. bzoj1000~1025
  6. ACM学习历程—CodeForces 590A Median Smoothing(分类讨论 &amp;&amp; 数学)
  7. 【Python】正则表达式中使用变量
  8. (转载)[机器学习] Coursera ML笔记 - 监督学习(Supervised Learning) - Representation
  9. bzoj 4407 于神之怒加强版 —— 反演+筛积性函数
  10. HDOJ1150(最小点集覆盖)