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数据时,官方包不如阿里巴巴的使用方便,可以通过如下代码进行比较:

  1. package com.hanqi.test;
  2.  
  3. public class User {
  4.  
  5. private int userID;
  6. private String userName,password;
  7. public User(int userID, String userName, String password) {
  8. super();
  9. this.userID = userID;
  10. this.userName = userName;
  11. this.password = password;
  12. }
  13. public int getUserID() {
  14. return userID;
  15. }
  16. public void setUserID(int userID) {
  17. this.userID = userID;
  18. }
  19. public String getUserName() {
  20. return userName;
  21. }
  22. public void setUserName(String userName) {
  23. this.userName = userName;
  24. }
  25. public String getPassword() {
  26. return password;
  27. }
  28. public void setPassword(String password) {
  29. this.password = password;
  30. }
  31. public User() {
  32. super();
  33. }
  34. @Override
  35. public String toString() {
  36. return "User [userID=" + userID + ", userName=" + userName + ", password=" + password + "]";
  37. }
  38. }
  1. package com.hanqi.test;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import org.json.JSONException;
  7.  
  8. import com.alibaba.fastjson.JSONArray;
  9. import com.alibaba.fastjson.JSONObject;
  10.  
  11. public class TestJSON {
  12.  
  13. public static void main(String[] args) {
  14. //测试JSON解析
  15.  
  16. //1从对象(集合)到JSON字符串
  17.  
  18. User u1 = new User(999,"tom","123456");
  19.  
  20. //导入阿里巴巴 JSON对象 jar包
  21. String ju1=JSONObject.toJSONString(u1);
  22. System.out.println("ju1="+ju1);
  23.  
  24. //集合
  25. List<User> lu = new ArrayList<User>();
  26. lu.add(new User(111,"User1","111"));
  27. lu.add(new User(222,"User2","111"));
  28. lu.add(new User(333,"User3","111"));
  29. lu.add(new User(444,"User4","111"));
  30.  
  31. //导入阿里巴巴 JSON集合 jar包
  32. String jlu = JSONArray.toJSONString(lu);
  33. System.out.println("jlu="+jlu);
  34.  
  35. //2从JSON字符串到集合(对象)
  36. //阿里巴巴JSON 可以直接将JSON字符串转为对象
  37. User u2 =JSONObject.parseObject(ju1,User.class);
  38. System.out.println("u2="+u2);
  39.  
  40. try {
  41. //名字冲突使用全路径 官方jar包
  42. //官方jar包不能直接转为对象,只能获取对象的单个值
  43. org.json.JSONObject jo = new org.json.JSONObject(ju1);
  44.  
  45. int userid = jo.getInt("userID"); //只能获取单个值
  46. System.out.println("userID="+userid);
  47.  
  48. } catch (JSONException e) {
  49. // TODO 自动生成的 catch 块
  50. e.printStackTrace();
  51. }
  52. //字符串集合
  53. //使用阿里巴巴jar包可以直接得到对象的集合
  54. List<User> lu2 = JSONArray.parseArray(jlu,User.class);
  55. //遍历集合
  56. for(User u:lu2)
  57. {
  58.  
  59. System.out.println(u);
  60. }
  61.  
  62. try {
  63. //使用官方jar包 必须解析JSON数组
  64. org.json.JSONArray ja = new org.json.JSONArray(jlu);
  65.  
  66. //使用官方jar包 解析JSON数组时一次只能获取其中的一个JSON对象
  67. org.json.JSONObject u3= ja.getJSONObject(0);
  68.  
  69. System.out.println("u3="+u3);
  70.  
  71. } catch (JSONException e) {
  72. // TODO 自动生成的 catch 块
  73. e.printStackTrace();
  74. }
  75.  
  76. }
  77.  
  78. }

JSON 的使用方法的更多相关文章

  1. ASP.NET提取多层嵌套json数据的方法

    本文实例讲述了ASP.NET利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,具体例子如下. 假设需要提取的json字符串如下: {"name":&quo ...

  2. 返回值是JSON的阿贾克斯方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. 用jquery解析JSON数据的方法以及字符串转换成json的3种方法

    用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是 json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject ...

  4. js将json字符串转化成json对象的方法

    js将json字符串转化成json对象的方法: JSON.parse(jsonObject)

  5. js如何把字符串转换成json数据的方法

    js如何把字符串转换成json数据的方法 function strtojson(str){ var json = eval('(' + str + ')'); return json; } 方法二 f ...

  6. php判断是否为json格式的方法

    php判断是否为json格式的方法. 首先要记住json_encode返回的是字符串, 而json_decode返回的是对象 判断数据不是JSON格式: 复制代码代码如下: function is_n ...

  7. JQuery 获取json数据$.getJSON方法的实例代码

    这篇文章介绍了JQuery 获取json数据$.getJSON方法的实例代码,有需要的朋友可以参考一下 前台: function SelectProject() { var a = new Array ...

  8. Spring MVC 3.0 返回JSON数据的方法

    Spring MVC 3.0 返回JSON数据的方法1. 直接 PrintWriter 输出2. 使用 JSP 视图3. 使用Spring内置的支持// Spring MVC 配置<bean c ...

  9. ThinkPHP中使用ajax接收json数据的方法

    本文实例讲述了ThinkPHP中使用ajax接收json数据的方法.分享给大家供大家参考.具体分析如下: 这里通过ThinkPHP+jquery实现ajax,扩展了下,写了个查询,前台代码如下: 首先 ...

  10. java 中关于json的使用方法

    json在数据传输起了很大的作用,下面说说java中json的使用方法. 文章参考:http://www.codes51.com/article/detail_99574.html json串示例 [ ...

随机推荐

  1. luogu1776宝物筛选

    多重背包问题 一开始我们的转移方程是 ;i<=n;i++) for(int j=m;j>=w[i];j--) ;k<=c[i];k++) )dp[j]=max(dp[j],dp[j- ...

  2. Qt Quick之Canvas

    QML中的Canvas,俗称画布,它用来定义一个绘图区域,可以使用ECMAScript代码来绘制直线,矩形,贝塞尔曲线,弧线,图片,文字等图元,还可以为这些图元应用填充颜色和边框颜色,甚至还可以进行低 ...

  3. IntelliJ手记

    1. 配置JDK:File - Project Structure - SDKs,点击“+”即可: 2. 配置远程调试,对于azkaban的远程调试,在azkaban-solo-start.sh里面的 ...

  4. C/C++文件读写操作总结

    本文主要从两方面介绍读写文件操作,一个是C,另一个是C++. 一.基于C的文件操作. 在ANSI C中对文件操作有两种方式,一种是流式文件操作,另一种是I/O文件操作.下面分别介绍. 1.流式文件操作 ...

  5. java中toString() 、(String)、String.valueOf的区别

    1.采用toString() 在使用时要注意,必须保证object不是null值,否则将抛出NullPointerException异常.采用这种方法时,通常派生类会覆盖Object里的toStrin ...

  6. Poj_1002_java解决

    一.Description 电话号码的标准格式是七位十进制数,并在第三.第四位数字之间有一个连接符.电话拨号盘提供了从字母到数字的映射,映射关系如下: A, B, 和C 映射到 2 D, E, 和F ...

  7. oracle--视图(2)---

    Oracle---视图 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同 ...

  8. BluetoothGetRadioInfo 函数

    DWORD BluetoothGetRadioInfo( HANDLE hRadio, PBLUETOOTH_RADIO_INFO pRadioInfo );获取蓝牙设备的信息.参数: hRadio ...

  9. 【254】◀▶IEW-Unit19

    Unit 19 Technology Communication I.名词性从句在雅思写作中的运用 英语中哪些位置可以放名词? 1)主语 2)宾语 3)表语 4)同位语 名词的位置放一个句子=名词性从 ...

  10. Load Runner 变量、参数的简单使用

    Action(){ 定义数组时一定要指明大小 变量定义一定要放在所以操作之前,放在脚本最前面     int num ;//定义数值变量 int numy[5];//定义整型数组 char *str1 ...