android JSON解析:官方&GSON方式
来源:互联网 发布:51单片机指令集 编辑:程序博客网 时间:2024/05/16 14:52
同样在apache/hotdoc目录下创建get_data.json文件,内容如下:
[{"id":"5","version":"5.5","name":"Boom Beach"},{"id":"6","version":"7.0","name":"Clash Royale"}]
第一种解析方式:官方解析
调用方法:parseJSONWithJSONObject
具体代码:
public class NetWorkTestActivity extends AppCompatActivity implements View.OnClickListener{ TextView responseText; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.networktest_main); Button sendRequest= (Button) findViewById(R.id.send_request); responseText= (TextView) findViewById(R.id.response_text); sendRequest.setOnClickListener(this); } @Override public void onClick(View v) { if (v.getId()==R.id.send_request){ //sendRequestWithHTTPURLConnection(); sendRequestWithOKHttp(); } } private void sendRequestWithOKHttp() { new Thread(new Runnable() { @Override public void run() { OkHttpClient client=new OkHttpClient(); Request request=new Request.Builder() .url("http://10.0.2.2/get_data.json") .build(); Response response=null; try { response=client.newCall(request).execute(); String responseData=response.body().string(); parseJSONWithJSONObject(responseData);//调用解析方法 showResponse(responseData); } catch (IOException e) { e.printStackTrace(); } } }).start(); } private void parseJSONWithJSONObject(String responseData) { try { JSONArray jsonArray=new JSONArray(responseData); for (int i=0;i<jsonArray.length();i++) { JSONObject jsonObject=jsonArray.getJSONObject(i); String id=jsonObject.getString("id"); String name=jsonObject.getString("name"); String version=jsonObject.getString("version"); Log.v("Main","id is"+id); Log.v("Main","name is"+name); Log.v("Main","version is"+version); } } catch (JSONException e) { e.printStackTrace(); } } private void showResponse(final String s) { runOnUiThread(new Runnable() { @Override public void run() { responseText.setText(s); } }); }}
第二种解析方式:GSON
调用方法:parseJSONWithGSON
步骤(基于以上代码):
1.首先在build.gradle中加入GSON库:
compile 'com.google.code.gson:gson:2.7'
2.然后创建内部类App:
public class App{ 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; } }
3.接着将调用方法改为parseJSONWithGSON,实现如下:
private void parseJSONWithGSON(String responseData) { Gson gson=new Gson(); List<App> applist=gson.fromJson(responseData,new TypeToken<List<App>>(){}.getType()); for (App app:applist){ Log.v("Main","id is"+app.getId()); Log.v("Main","name is"+ app.getName()); Log.v("Main","version is"+app.getVersion()); } }
其实主要步骤就是创建了一个类,然后通过gson.fromJson方法把数据解析成类对象并获取信息。
阅读全文
0 0
- android JSON解析:官方&GSON方式
- Android Gson官方推荐的json解析方式
- Android JSON数据解析(GSON方式)
- Android中的JSON解析方式:json; Gson ; Fastjson
- Android中的JSON解析方式:json; Gson ; Fastjson
- Android中的JSON解析方式:json; Gson ; Fastjson
- Android JSON Gson 解析
- Android Gson解析Json
- Android Gson 解析 Json
- Android json解析--GSON
- android Gson解析 (同json解析方式)
- Android中解析json数据的方式之一:Gson
- 【Android】Gson-以类模板的方式解析复杂JSON
- Android学习笔记45:JSON数据解析(GSON方式)
- Android 解析Json的方式:底层做法、Gson、FastJson
- JSON解析 Gson解析方式 JSONObject JSONArray
- android中用gson解析json
- Android解析json数据(Gson)
- CENTOS 6下ANDROID SDK碰到提示”LIBC.SO.6: VERSION `GLIBC_2.14′ NOT FOUND”的解决方法
- android7.0打开相册报FileUriExposedException异常
- Android自定义控件三部曲
- YAHFA--ART环境下的Hook框架(代码详解)
- XBlog博客系统1.0版
- android JSON解析:官方&GSON方式
- 如何用命令行的方式将项目的文件打成jar包
- pycurl-7.43.0安装时遇到的错误
- Github网页版完成版本控制使用说明
- Uiautomator的日常使用笔记
- 极乐小程序榜单(第一期)
- .NET事务、分布式事务
- 集成了各种Android效果
- Arch配置和美化