Android——GSON解析JSON
16lz
2021-12-04
添加jar包
implementation 'com.squareup.okhttp3:okhttp:3.4.1'implementation 'com.google.code.gson:gson:2.7'
闭包里申请网络权限
布局文件中就一个Button,此处不再阐述,解析的XML数据将以日志方式体现
建立一个实体类,User,User里面的字段映射json数据内的标签
代码如下:
public class User { private String id; private String name; private String version; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; }}
MainActivity.java代码如下:
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button SendRequest; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SendRequest = (Button) findViewById(R.id.SendRequest); SendRequest.setOnClickListener(this); } @Override public void onClick(View v) { if (v.getId() == R.id.SendRequest){ SendRequestToJson(); } } private void SendRequestToJson(){ try { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().url("http://192.168.0.60:8888/data.json").build(); Response response = client.newCall(request).execute(); String ResponseData = response.body().string(); JsonParseWithGson(ResponseData); }catch (Exception e){ e.printStackTrace(); } } private void JsonParseWithGson(String Data){ Gson gson = new Gson(); /* * 由于在运行期间无法得知User的具体类型, * 对这个类的对象进行序列化和反序列化都不能正常进行 * Gson通过借助TypeToken类来解决这个问题。 * 将User类作为TypeToken的一个匿名子类然后通过getType()获取类的参数类型 * */ List userList = gson.fromJson(Data,new TypeToken>(){}.getType()); for (User user : userList){ Log.d("ID =",user.getId()); Log.d("Name =",user.getName()); Log.d("Version =",user.getVersion()); } }}
更多相关文章
- android 全屏 webview 加载的h5的输入框,被键盘遮挡的解决
- android手机打电话代码分析
- Android(安卓)ApiDemos示例解析(90):OS->Sensors
- Android(安卓)Studio中隐藏状态栏和标题栏的方法
- Android(安卓)Platform 3.0 SDK和Eclipse ADT安装记录三
- Android开发之dagger.android--Activity
- android 修改键盘enter图标,设置搜索等图标
- Android(安卓)摇一摇太灵敏的解决方法
- javafx控件的显示与隐藏