Android开发如何轻松读写JSON数据?

你的APP是不是经常需要保存用户设置?有没有遇到过切换页面后数据丢失的烦恼?JSON作为最常用的数据交换格式,就像给APP装了个记忆芯片。今天咱们用最接地气的方式,手把手教你玩转Android里的JSON操作。

JSON其实长得就像超市购物清单。键值对组合就像”苹果:3斤”,整个结构用大括号包着。比如用户信息可能长这样: { “username”: “小明”, “age”: 25, “hobbies”: [“篮球”,”编程”] } 看懂了吧?键必须用双引号,值可以是数字、字符串、数组甚至嵌套对象。重点来了:冒号左边是固定标签,右边才是具体内容

读取JSON数据分三步走。先得拿到原始数据源,可能是网络请求返回的字符串,也可能是本地保存的txt文件。假设我们从服务器获取到用户数据: String jsonStr = “{\”email\”:\”test@qq.com\”}”; 这时候用JSONObject对象来解析: JSONObject user = new JSONObject(jsonStr); String email = user.getString(“email”); 遇到数组怎么办?比如用户有多个收货地址: JSONArray addresses = user.getJSONArray(“addresses”); for(int i=0; i<addresses.length(); i++){ String addr = addresses.getString(i); } 注意这里要用循环逐个取出数组元素。

写入JSON更简单。先创建空对象: JSONObject newUser = new JSONObject(); 然后往里面塞数据: newUser.put(“vipLevel”,2); newUser.put(“isVerified”,true); 想存数组?先创建JSONArray: JSONArray orders = new JSONArray(); orders.put(“订单A”); orders.put(“订单B”); newUser.put(“orderList”,orders); 最后转成字符串保存: String output = newUser.toString();

可能你会问:为什么不用XML?举个例子,同样的用户信息,XML需要写大量重复标签,而JSON体积更小,解析速度更快,特别适合移动端。不过要注意特殊字符转义,比如引号前要加反斜杠。

实际开发中常踩的坑有哪些?第一个就是格式错误。建议用在线校验工具检查JSON格式。第二个是类型转换错误,比如把数字当字符串取。解决方法是用对应方法:getInt()取数字,getString()取文本。第三个是空指针,记得先判断是否存在该字段: if(user.has(“phone”)){ //再取值 }

保存到本地推荐两种方式。小数据用SharedPreferences: SharedPreferences.Editor editor = getSharedPreferences(“user”,MODE_PRIVATE).edit(); editor.putString(“jsonData”,output); editor.apply(); 大数据量建议用文件存储: FileOutputStream fos = openFileOutput(“data.json”,Context.MODE_PRIVATE); fos.write(output.getBytes()); fos.close(); 读取时反过来操作就行。记得申请存储权限,这点新手最容易忘。

小编最后唠叨两句:别被JSON吓到,其实就跟收拾衣柜一样,把不同类别的数据分门别类放好。多写几次就会发现,这种结构比乱糟糟的文本好管理多了。下次遇到复杂数据时,记得先画个JSON结构草图再动手编码,保准事半功倍。

本站文章由SEO技术博客撰稿人原创,作者:阿君创作,如若转载请注明原文及出处:https://www.ainiseo.com/hosting/16849.html

(0)
上一篇 2025 年 3 月 5 日 下午4:50
下一篇 2025 年 3 月 5 日 下午5:00

相关文章推荐

联系我

由于平时工作忙:流量合作还是咨询SEO服务,请简明扼表明来意!谢谢!

邮件:207985384@qq.com 合作微信:ajunboke

工作时间:周一至周六,9:30-22:30,节假日休息

个人微信
个人微信
分享本页
返回顶部