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();
} } }

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. Tensorflow 数据导入

    导入数据 借助 tf.data API,您可以根据简单的可重用片段构建复杂的输入管道.例如,图片模型的管道可能会汇聚分布式文件系统中的文件中的数据.对每个图片应用随机扰动,并将随机选择的图片合并成用于 ...

  2. 汇编题目:按A键,当松开的时显示字母A

    安装一个新的int9中断例程,功能:在DOS下,按下“A”键后,除非不再松开,如果松开,就显示满屏的“A”:其他的按键照常处理.提示:按下一个键时产生的扫描码称为通码,松开一个键时产生的扫描码称为断码 ...

  3. 51nod 1450 闯关游戏——期望dp

    题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1450 想了半天,不知道不能走的状态(即最后不足m个的状态)怎么办. ...

  4. bzoj 4372 烁烁的游戏 —— 动态点分治+树状数组

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4372 本以为和 bzoj3730 一样,可以直接双倍经验了: 但要注意一下,树状数组不能查询 ...

  5. Navicat生成数据库结构同步SQL

    作为一个苦逼的技术男,在做开发的时候经常会遇见程序版本升级,数据库结构变化.我们需要一个快捷的方式让客户尽快从旧版本数据库结构更新至新版本数据库结构.如果每做一次改动我们就记录一下当然是好事,但是万一 ...

  6. POJ3630(Trie树)

    Phone List Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26385   Accepted: 7957 Descr ...

  7. 杂项-权限管理:RBAC

    ylbtech-杂项-权限管理:RBAC 基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注.在RBAC中, ...

  8. mysql--事务demo1----

    package com.etc.entity; import java.sql.Connection; import java.sql.PreparedStatement; import java.s ...

  9. 用python做的windows和linx文件夹同步。解决自动同步、加快传输大量小文件的速度、更丰富的文件上传过滤设置。

    现在工具不好用,用的pycharm自动同步,但对于git拉下来的新文件不能自动上传到linux,只有自己编辑过或者手动ctrl + s的文件才会自动同步.导致为了不遗漏文件,经常需要全量上传,速度非常 ...

  10. 浏览器重绘(repaint)和回流(reflow)的那点事

    第一次听到重绘和回流是在鹅厂实习面试,那个时候对浏览器没有任何的概念,所以面试官说到这个问题的时候整个人都蒙圈了.下面是近期学习总结: 重绘(repaint)和回流(reflow) 文档初次加载时,H ...