Android 获取网络数据(使用fastjson-1.2.3.jar 包)

在Tomcat/webapps\ROOT下新建一个JSON文件然后另存为修给编码格式为UTF-8


使用DOS密令在有网络的情况下执行ipconfig 获取到  IPv4 地址 后面一串ID

打开Tomcat 在浏览器输入http://(IPv4 地址):8080/(JSON文件)的到一行网络地址


JSON文件里的代码:

{"count":2,"Students":[{"sid":1,"sname":"张三","sex":"男"},{"sid":2,"sname":"李四","sex":"男"}]}



代码实现

新建类1.(对应JSON里的对象)

package com.example.g160628_android_31_parsejson;

import java.util.List;

/**
 * Created by Administrator on 2017/7/26.
 */

public class BIgObject {

    private int count;
    private List<Student> Students;

    public BIgObject(int count, List<Student> students) {
        this.count = count;
        Students = students;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public List<Student> getStudents() {
        return Students;
    }

    public void setStudents(List<Student> students) {
        Students = students;
    }

    public BIgObject() {
    }
}

新建类2

package com.example.g160628_android_31_parsejson;

/**
 * Created by Administrator on 2017/7/26.
 */

public class Student {
    private int  sid;
    private String sname;
    private String sex;

    public Student(int sid, String sname, String sex) {
        this.sid = sid;
        this.sname = sname;
        this.sex = sex;
    }

    public int getSid() {
        return sid;
    }

    public void setSid(int sid) {
        this.sid = sid;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Student() {
    }
}




在主要的Activity里实现:

package com.example.g160628_android_31_parsejson;

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

import com.alibaba.fastjson.JSON;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void JSON(View view){
          new MYTask().execute();
    }

    class MYTask extends AsyncTask{

        @Override
        protected Object doInBackground(Object[] params) {
            String path="http://192.168.43.164:8080/Students.json";
            try {
                URL url=new URL(path);
                HttpURLConnection connection= (HttpURLConnection) url.openConnection();
                //获取请求方式
                connection.setRequestMethod("GET");
                //获取结果码
                int type=connection.getResponseCode();
                if(type==200){
                    InputStream is=connection.getInputStream();
                    int len=0;
                    byte[] by=new byte[1024];
                    StringBuffer sb=new StringBuffer();
                    while ((len=is.read(by))!=-1){
                        String str=new String(by,0,len);
                        sb.append(str);
                    }
                    Log.i("test",sb.toString());

                  //fastjson-1.2.3.jar 导入jar包
                    BIgObject json=JSON.parseObject(sb.toString(),BIgObject.class);
                    Log.i("test",""+json.getCount());
                    List<Student> list=json.getStudents();
                    for (Student student : list) {
                        Log.i("test",student.getSname());
                    }




                }
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
    }
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值