Android 网络请求相关(1)
就像课程中说的那样,如果想要知道某些区域地震发生的事件,我们想要通过一个应用程序来查看数据,但是我们不可能在编程的时候直接将全部数据都丢到源代码中,为了解决这个问题,我们需要使用网络方式获取打包数据
使用方式
了解 JSON 数据格式
-
JSON 数据格式,在使用网络传输的时候会解析数据以及传递参数,那么在传输过程中所使用的数据格式常用的就是 JSON 了,JSON 格式的结构非常清晰,非常方便开发者解析数据,查看示例:
{ "name": "zhangsan", "gender": 0 }
如需了解更多 👉JSON
-
解析 JSON 格式数据,JSON 数据的解析非常简单,Android 中提供了 JSONObject 对象, 详情可以点击链接查看文档,示例:
数据:
{ "weather": [ { "id": 711, "main": "Smoke", "description": "smoke", "icon": "50n" } ] }
JAVA 解析方式
public void parseJsonObj() throws JSONException { String str = "{\"weather\": [{\"id\": 711,\"main\": \"Smoke\",\"description\": \"smoke\",\"icon\": \"50n\"}]}"; JSONObject json = new JSONObject(str); //通过new 关键子创建JSONObject JSONArray weather = json.getJSONArray("weather"); //获取到JSONArray对象 [{"id": 711,"main": "Smoke","description": "smoke","icon": "50n"}] JSONObject jsonObject = weather.getJSONObject(0); //通过索引获取json对象 {"id": 711,"main": "Smoke","description": "smoke","icon": "50n"} long id = jsonObject.getLong("id"); //获取Long型ID,可以作Int,String 获取 711 String main = jsonObject.getString("main"); //获取字符串 “Smoke” }
Kotlin 解析方式
@Throws(JSONException::class) fun parseJsonObj() { val str = "{\"weather\": [{\"id\": 711,\"main\": \"Smoke\",\"description\": \"smoke\",\"icon\": \"50n\"}]}" val json = JSONObject(str) //通过new 关键子创建JSONObject val weather = json.getJSONArray("weather") //获取到JSONArray 对象 [{"id": 711,"main": "Smoke","description": "smoke","icon": "50n"}] val jsonObject = weather.getJSONObject(0) //通过索引获取json 对象 {"id": 711,"main": "Smoke","description":"smoke","icon":"50n"} val id = jsonObject.getLong("id") //获取Long型ID,可以作Int,String 获取 711 val main = jsonObject.getString("main") //获取字符串 “Smoke” }
JSONObject 有一些其他的方法,可以👉JSON 了解更多