初识JSON—获取JSON数据的两种常见…

一、 {
     "data" :[
                {
            "st":"95.000",
            "exam_id":317,
            "exam_name":"多线程考试",
            "exam_date":"2015-11-04 00:00:00",
            "date_to":"2015-11-07 00:00:00",
            "what_score":95,
            "answer_time":"2015-11-07 19:44:19"
        }
        ]" style="box-sizing: border-box; color: rgb(85, 85, 85); font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, 'Helvetica Neue', Helvetica, Arial, sans-serif, 微软雅黑, 黑体; line-height: 20px; background-color: rgb(255, 255, 255);">Array[ 1] ,
     "success" : true
}
即Object中存放Array数组;



private List getJsonData(String url) {

List itemBeanList = new ArrayList();

try {
String jsonStrig = readStream(new URL(url).openStream());
JSONObject jsonObject;
ItemBean itemBean;
try {
jsonObject = new JSONObject(jsonStrig);
JSONArray jsonArray = jsonObject.getJSONArray("data");
for (int i = 0; i < jsonArray.length(); i++) {
jsonObject = jsonArray.getJSONObject(i);
itemBean = new ItemBean();
itemBean.itemTitle = jsonObject.getString("exam_name");
itemBean.itemXiafa = jsonObject.getString("exam_date");
itemBean.itemTijiao = jsonObject.getString("answer_time");
itemBean.itemScore = jsonObject.getString("st");

itemBeanList.add(itemBean);
}
} catch (JSONException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

return itemBeanList;
}
二、 {
     "data" :{
                "article_id": 1,
                "title_": "分享了刘飞洋的代码: 有一个员工类,用于存储员工信息,有姓名、性别、电话、出生日期等属性,另有一个部门类,部门和员工是聚合关系,请使用集合完成下面的功能: <br>A、往部门中添加一个新员工 <br>B、员工辞职,根据姓名删除该部门中的辞职员工 <br>C、计算某部门员工的的平均年龄 <br>D、统计某部门男女性别分别是多少 <br>E、找出某部门年龄最大的员工",
                "reason_": "功能实现了,但遗憾的是没有正确描述部门与员工的关系。",
                "date_": "2015-01-01 00:00:00",
                "content": "//员工类 <br>import java.sql.Date; <br>public class Employee1 { <br>    private String name; <br>    private Character sex; <br>    private Integer age; <br>    private Long phone; <br>    private Date birthday; <br> public Employee1(String name, Character sex, Long phone, Date birthday,Integer age) { <br> super(); <br> this.name name; <br> this.sex sex; <br> this.phone phone; <br> this.birthday birthday; <br> this.age=age; <br> } <br> public String getName() { <br> return name; <br> } <br> public void setName(String name) { <br> this.name name; <br> } <br> public Character getSex() { <br> return sex; <br> } <br> public void setSex(Character sex) { <br> this.sex sex; <br> } <br> public Long getPhone() { <br> return phone; <br> } <br> public void setPhone(Long phone) { <br> this.phone phone; <br> } <br> public Date getBirthday() { <br> return birthday; <br> } <br> public void setBirthday(Date birthday) { <br> this.birthday birthday; <br> } <br> public Integer getAge() { <br> return age; <br> } <br> public void setAge(Integer age) { <br> this.age age; <br> } <br> <br>    <br>} <br> <br> <br> <br> <br> <br>import java.util.ArrayList; <br>import java.util.List; <br>//功能类 <br>public class Test { <br>    private final char BOY='男'; <br>    private final char GIRL='女'; <br> //A.添加员工的方法 <br> public void addEmployee(Department dp,Employee1 em){ <br> dp.getEmployees().add(em); <br> } <br> <br> //B.根据姓名删除员工 <br> public void dropEmployee(Department dp,String name){ <br> List<Employee1> list=dp.getEmployees(); <br> for(Employee1 em:list){ <br> if(name.equals(em.getName())){ <br> list.remove(em); <br> } <br> } <br> dp.setEmployees(list); <br> } <br> <br> //C计算某部门的员工的平均年龄 <br> public int averageAge(Department dp){ <br> List<Employee1> list=dp.getEmployees(); <br> int ages=0; <br> for(Employee1 em:list){ <br> ages+=em.getAge(); <br> } <br> return ages/list.size(); <br> } <br> <br> //D统计男女员工人数 <br> public int[] stat(Department dp){ <br> int[] result=new int[2]; <br> List<Employee1> list=dp.getEmployees(); <br> for(Employee1 em:list){ <br> if(em.getSex()==BOY){ <br> result[0]++; <br> } <br> if(em.getSex()==GIRL){ <br> result[1]++; <br> } <br> } <br> return result; <br> } <br> <br> //E找出部门年龄最大的员工 <br> public Employee1 findOldest(Department dp){ <br> List<Employee1> list=dp.getEmployees(); <br> Employee1 employee=list.get(0); <br> for(Employee1 em:list){ <br> if(em.getAge()>employee.getAge()){ <br> employee=em; <br> } <br> } <br> return employee; <br> } <br> <br> //测试 <br> public static void main(String[] args) { <br> Test test=new Test(); <br> <br> //初始化部门信息 <br> Department dp=new Department(); <br> List<Employee1> list=new ArrayList<Employee1>(); <br> Employee1 em1=new Employee1("张三", '男', 1567720011L, java.sql.Date.valueOf("1990-10-04"),24); <br> Employee1 em2=new Employee1("李四", '男', 1567720012L, java.sql.Date.valueOf("1991-09-02"),23); <br> Employee1 em3=new Employee1("王燕", '女', 1567720033L, java.sql.Date.valueOf("1992-11-18"),22); <br> Employee1 em4=new Employee1("张伟", '男', 1567720023L, java.sql.Date.valueOf("1993-12-14"),21); <br>        list.add(em1); <br>        list.add(em2); <br>        list.add(em3); <br>        list.add(em4); <br>        dp.setEmployees(list); <br>         <br>        //测试功能 <br>        //添加功能 <br>        System.out.println("部门原人数:"+dp.getEmployees().size()); <br> test.addEmployee(dp new Employee1("王五", '男', 1567720013L, java.sql.Date.valueOf("1992-12-04"),22)); <br>        System.out.println("添加后人数:"+dp.getEmployees().size()); <br>        //删除 <br>        test.dropEmployee(dp, "张伟"); <br>        System.out.println("删除后人数:"+dp.getEmployees().size()); <br>     //平均年龄 <br>        System.out.println("平均年龄:"+test.averageAge(dp)); <br>        //部门男女性别 <br>        int[] result=test.stat(dp); <br>        System.out.println("男的有:"+result[0]+"\t女的有:"+result[1]); <br>     //年龄最大的员工 <br>        Employee1 em=test.findOldest(dp); <br>        System.out.println("年龄最大的员工:"+em.getName()); <br> } <br> <br>}",
                "author": "刘飞洋",
                "type_": 1
        }" style="box-sizing: border-box; color: rgb(85, 85, 85); font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, 'Helvetica Neue', Helvetica, Arial, sans-serif, 微软雅黑, 黑体; line-height: 20px; background-color: rgb(255, 255, 255);">Object{...} ,
     "success" : true
}
Object中包含Object;


private List getJsonData(String url) {

List itemBeanList = new ArrayList();
try {
String jsonStrig = readStream(new URL(url).openStream());
JSONObject jsonObject;
ItemBean itemBean;
try {
jsonObject = new JSONObject(jsonStrig);
JSONObject jo = jsonObject.getJSONObject("data");
itemBean = new ItemBean();
itemBean.itemtitle_ = jo.getString("title_");
// Log.i("sss", itemBean.itemtitle_);
itemBean.itemauthor = jo.getString("author");
itemBean.itemreason_ = jo.getString("reason_");
itemBean.itemdate_ = jo.getString("date_");
itemBeanList.add(itemBean);
} catch (JSONException e) {
e.printStackTrace();
Log.i("ss", "ss11");
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Log.i("sss", "return itemBeanList");
return itemBeanList;
}


///
private String readStream(InputStream is) {
InputStreamReader isr;
String result = "";
try {
String line = "";
isr = new InputStreamReader(is, "utf-8"); // 字节流转换为字符流
BufferedReader br = new BufferedReader(isr);
while ((line = br.readLine()) != null) {
result += line;
}
} catch (UnsupportedEncodingExcep tion e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

return result;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值