Android-解析Json(1.使用原生态解析,2.使用Gson解析Json,3.FastJson解析)
来源:互联网 发布:央视索福瑞收视数据 编辑:程序博客网 时间:2024/06/16 06:13
解析网络Json文件:
本Demo的Json文件放在Tomcat的ROOT目录下,
首先,写个简单的布局文件:
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.asus.android_30_parsejson.MainActivity"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="解析Json" android:onClick="parseJson" /></RelativeLayout>
其次,在MainActivity中进行解析
注:Gson解析需下载com.google.code.gson:gson:2.8.0架包
FastJson需下载fastjson-1.2.3.jar
否则不可以使用
package com.asus.android_30_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 com.google.gson.Gson;import org.json.JSONArray;import org.json.JSONObject;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;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 parseJson(View view){ new MyTask().execute(); } class MyTask extends AsyncTask{ @Override protected Object doInBackground(Object[] params) { //获取网络Json try { //http://192.168.43.231:8080/ URL url=new URL(getString(R.string.server_name)+"persons.json"); HttpURLConnection connection= (HttpURLConnection) url.openConnection(); //设置请求方式 connection.setRequestMethod("GET"); //网络请求超时 connection.setConnectTimeout(5000); //获取结果码 int code=connection.getResponseCode(); if (code==200){ InputStream is=connection.getInputStream(); //测试 BufferedReader br=new BufferedReader(new InputStreamReader(is)); String str=null; StringBuffer stringBuffer=new StringBuffer(); while((str=br.readLine())!=null){ stringBuffer.append(str); } Log.i("test",stringBuffer.toString()); //开始解析 //1.使用原生态解析// JSONObject jsonObject=new JSONObject(stringBuffer.toString());// int list=jsonObject.getInt("list");// Log.i("test","长度:"+list);//// JSONArray jsonArray=jsonObject.getJSONArray("persons");//// for (int i = 0; i <jsonArray.length() ; i++) {// JSONObject object=jsonArray.getJSONObject(i);// int pid=object.getInt("id");// String pname=object.getString("name");// int page=object.getInt("age");// Log.i("test",pid+" "+pname+" "+page);// } //2.使用Gson解析Json Gson gson=new Gson(); BigPerson bigPerson=gson.fromJson(stringBuffer.toString(),BigPerson.class); Log.i("test",bigPerson.getList()+""); List<SmallPerson> persons=bigPerson.getPersons(); for (SmallPerson person : persons) { Log.i("test",person.toString()); } //03.FastJson// BigPerson bigPerson= JSON.parseObject(stringBuffer.toString(),BigPerson.class);// Log.i("test",bigPerson.getList()+"");// List<SmallPerson> persons=bigPerson.getPersons();// for (SmallPerson person : persons) {// Log.i("test",person.toString());// } } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Object o) { super.onPostExecute(o); } }}
0 0
- Android-解析Json(1.使用原生态解析,2.使用Gson解析Json,3.FastJson解析)
- 原生态,Gson,FastJson解析Json
- Android解析JSON(原生态 Gson FastJson)
- Android-原生态、Goson、FastJson解析Json
- android 使用FastJson、Gson、JSON 解析Json---练习
- Android之解析JSON数据(android原生态,FastJson,Gson)
- JSON解析-GSON-FastJSON.android
- Android-解析Json(Gson-FastJson)
- json解析库gson和fastjson使用
- Android 三种解析Json分别 原生态 Goson FastJson
- Android使用gson解析json
- Android常用Json解析框架GSON和FastJson的使用
- 使用Gson解析Json
- 使用Gson解析json
- 使用Gson解析json
- 使用Gson解析json
- 使用GSON解析json
- 使用Gson解析json
- 基础练习 龟兔赛跑预测
- Mac 快速安装 Ubuntu 虚拟机
- LBSN2016 关注热点
- 最小二乘法介绍
- Java内部类详解
- Android-解析Json(1.使用原生态解析,2.使用Gson解析Json,3.FastJson解析)
- 决策树和基于决策树的集成方法(DT,RF,GBDT,XGB)复习总结
- 基础练习 回形取数
- bzoj1010: [HNOI2008]玩具装箱toy
- 欢迎使用CSDN-markdown编辑器
- ITerm常用的快捷键
- Leetcode——240. Search a 2D Matrix II
- 卷积神经网络
- UML图