Android解析XML(PULL)与Android解析Json

来源:互联网 发布:单片机中断程序编写 编辑:程序博客网 时间:2024/05/22 15:08

安卓解析json4种格式:

http://blog.csdn.net/mfc2003/article/details/38584845/

动态生成XML:

http://blog.csdn.net/qq776306395/article/details/28859901

Android解析XML(PULL)

private ProgressDialog pd;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        pd = new ProgressDialog(this);        pd.setMessage("正在拼命加载中....");    }    //从网页上获取数据    public void getXMLByNet(View view){         new MyTask().execute();    }    class MyTask extends AsyncTask{        @Override//获取数据        protected Object doInBackground(Object[] params) {            //获取网络XML数据            String path="http://169.254.113.40:8080/students.xml";            try {                //定义一个网络协议(java.net)传入一个路径                URL url=new URL(path);                //打开连接                HttpURLConnection connection= (HttpURLConnection) url.openConnection();                //设置请求方式                connection.setRequestMethod("GET");                //设置请求超时的时间                connection.setConnectTimeout(5000);                //获取结果码                int code=connection.getResponseCode();                if(code==200){                    //获取数据                    InputStream is=connection.getInputStream();//                    int len=0;//                    byte[] buf=new byte[1024];                    //StringBuffer stringBuffer=new StringBuffer();//                    while((len=is.read(buf))!=-1){//                        String s=new String(buf,0,len);//                        stringBuffer.append(s);//                    }                    //Log.i("test",stringBuffer.toString());                    //解析XML (PULL)                    XmlPullParser pullParser=Xml.newPullParser();                    pullParser.setInput(is,"UTF-8");                    //解析的标签类型                    int type=pullParser.getEventType();                    while(type!=XmlPullParser.END_DOCUMENT){                        switch (type) {                            case  XmlPullParser.START_TAG:                                //获取开始标签的名字                                String startTagName=pullParser.getName();                                if("student".equals(startTagName)){                                    //获取属性id的值                                    String sid=pullParser.getAttributeValue(0);                                    Log.i("test",sid);                                }else if("sname".equals(startTagName)){                                    String sname=pullParser.nextText();                                    Log.i("test"," "+sname);                                }else if("sage".equals(startTagName)){                                    String sage=pullParser.nextText();                                    Log.i("test"," "+sage);                                }                                break;                            case XmlPullParser.END_TAG:                                break;                        }                        //细节:                        type=pullParser.next();                    }                    is.close();                }            } catch (MalformedURLException e) {                e.printStackTrace();            } catch (IOException e) {                e.printStackTrace();            } catch (XmlPullParserException e) {                e.printStackTrace();            }            return null;        }        @Override//更新界面        protected void onPostExecute(Object o) {            super.onPostExecute(o);        }    }
Android解析Json(导入一个架包fastjson-1.2.3.jar)

public class MainActivity extends AppCompatActivity {    private ProgressDialog pd;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        pd = new ProgressDialog(this);        pd.setMessage("正在拼命加载中....");    }    public void getJsonByNet(View view){         new MyJsonTask().execute();    }    class MyJsonTask extends AsyncTask {        @Override        protected void onPreExecute() {            super.onPreExecute();            pd.show();        }        @Override        protected Object doInBackground(Object[] params) {            //获取网络Json数据            String path = "http://169.254.113.40:8080/students.json";            try {                //定义一个网络协议(java.net)传入一个路径                URL url = new URL(path);                //打开连接                HttpURLConnection connection = (HttpURLConnection) url.openConnection();                //设置请求方式                connection.setRequestMethod("GET");                //设置请求超时的时间                connection.setConnectTimeout(5000);                //获取结果码                if (connection.getResponseCode() == 200) {                    InputStream is = connection.getInputStream();                    int len = 0;                    byte[] buf = new byte[1024];                    StringBuffer stringBuffer = new StringBuffer();                    while ((len = is.read(buf)) != -1) {                        String s = new String(buf, 0, len);                        stringBuffer.append(s);                    }                    Log.i("test", stringBuffer.toString());                    //FastJson                    //解析JSON                    BigObject bigObject = JSON.parseObject(stringBuffer.toString(), BigObject.class);                    int count = bigObject.getCount();                    Log.i("test", count + " ");                    List<Student> students = bigObject.getStudents();                    for (Student student : students) {                        Log.i("test", student.getSname() + " " + student.getSsex());                    }                }            } catch (MalformedURLException e) {                e.printStackTrace();            } catch (IOException e) {                e.printStackTrace();            }            return null;        }        @Override        protected void onPostExecute(Object o) {            pd.cancel();            super.onPostExecute(o);        }    }}

<!--json权限-->    <uses-permission android:name="android.permission.INTERNET"></uses-permission>




原创粉丝点击