Android入门第9天-Android读本地JSON文件并显示
Android在大都情况会取得后台Service返回的json数据来做前端展示。那么Android是如何处理json文件的呢?我们就一起跟着今天的教程一步步来实现吧。
目标
设本地有一个demo.json,内容如下
{"banks" : [{"value": "CDB","text":"国家开发银行"},{"value": "ICBC","text":"中国工商银行"},{"value": "ABC","text": "中国农业银行"},{"value": "BOC","text": "中国银行"},{"value": "cCB","text": "中国建设银行"}]
}
然后手机上有一个按钮,点一下这个按钮在手机的读行文本内展示成如下样子
进入开发
- 在手机上拖一个按钮、拖一个TextView。
- 然后把按钮和Text View的关系都设成上、下、左、右都为16,然后建立成Vertical Chain的关系。并且把按钮位于TextView的上方面。
- 把Textview的ID改成jsonDisplayer。
在Android中我们可以通过以下语句找到我们界面的控件
TextView jsonText= findViewById(R.id.jsonDisplayer);
以下是全代码,原理就是我做了一个public void getJson(View view){的方法,并把它绑定到了我们的这个按钮的onClick事件上了。
package org.mk.android.demo.androidjson;import androidx.appcompat.app.AppCompatActivity;import android.content.res.AssetManager;
import android.os.Bundle;
import org.json.JSONArray;
import org.json.JSONObject;
import android.view.View;
import android.widget.TextView;import java.io.InputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class MainActivity extends AppCompatActivity {public void getJson(View view){InputStreamReader inputStreamReader=null;BufferedReader br=null;try{AssetManager assetManager = getAssets(); //获得assets资源管理器(assets中的文件无法直接访问,可以使用AssetManager访问)inputStreamReader = new InputStreamReader(assetManager.open("demo.json"),"UTF-8"); //使用IO流读取json文件内容br = new BufferedReader(inputStreamReader);//使用字符高效流String line;StringBuilder builder = new StringBuilder();while ((line = br.readLine())!=null){builder.append(line);}JSONObject testJson = new JSONObject(builder.toString()); // 从builder中读取了json中的数据。// 直接传入JSONObject来构造一个实例JSONArray array = testJson.getJSONArray("banks");System.out.println(">>>>>>banks object is->"+array.toString());TextView jsonText= findViewById(R.id.jsonDisplayer);for (int i = 0;i<array.length();i++){JSONObject jsonObject = array.getJSONObject(i);String text = jsonObject.getString("text");String value = jsonObject.getString("value");String displayTxt=value+":"+text+"\n";jsonText.append(displayTxt);System.out.println(">>>>>>JSON Data->\n"+text+value);}}catch(Exception e){System.err.println(">>>>>>read json error->"+e.getMessage());e.printStackTrace();}finally{try{br.close();}catch(Exception e){}try{inputStreamReader.close();}catch(Exception e){}}}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}
}
代码写完后在项目里把项目视图切换成标准的java视图
选中src/main右击鼠标,选择new->Folder→Assets Folder
然后我们就可以把我们的.json文件放在这了
剩下就是自己动一下手去实现吧,10分钟就开发好了。
Android入门第9天-Android读本地JSON文件并显示相关推荐
- Android进阶之路 - 存、取、读 本地 Json 文件
最近在开发中又开始加载一些本地的json数据源,回头看之前竟然没记录,赶紧记录一波 ~ 如何准备一个合格的json文件? AndoridStudio中如何存放json文件? 如何读取本地Json文件数 ...
- php读本地json文件内容,php读取本地json文件有哪些方法
这次给大家带来php读取本地json文件有哪些方法,php读取本地json文件的注意事项有哪些,下面就是实战案例,一起来看一下. 1.data.json文件{ "goods":[ ...
- Android入门第41天-Android中的Service(bindService)
介绍 在前一天我们介绍了Android中有两种启动Service的方法.并擅述了startService和bindService的区别.同时我们着重讲了startService. 因此今天我们就来讲b ...
- Android入门第19天-Android里的RatingBar的使用
介绍 我们先来看一下什么叫RatingBar长什么样的. 我们很多时候订单评价给5星.打车评价都是用的这个RatingBar.本节我们学的这个RatingBar(星级评分条)其实在使用上是非常简单的, ...
- Android入门第31天-Android里的ViewFlipper翻转视图的使用
介绍 本篇给大家带了的是ViewFlipper,它是Android自带的一个多页面管理控件,且可以自动播放! 和ViewPager不同,ViewPager是一页页的,而ViewFlipper则是一层层 ...
- Android入门第20天-Android里的ScrollView的使用
介绍 ScrollView(滚动条),它有两种"滚动条": 竖直滚动条: 水平方向上的滚动条:HorizontalScrollView: 我们经常可以看到在手机里正在垂直加载一堆的 ...
- Android入门第1天-Android Studio的安装
安装前的准备 在hosts文件中加入dl.google.com的ip映射 Android Studio在安装时大量的依赖库会从dl.google.com下载.在国内安装步骤卡死基本都是卡死在该步.那么 ...
- Android入门第30天-Android里的Toast的使用
介绍 本篇带来的是: Android用于提示信息的一个控件--Toast(吐司)!Toast是一种很方便的消息提示框,会在 屏幕中显示一个消息提示框,没任何按钮,也不会获得焦点一段时间过后自动消失! ...
- Android入门第18天-Android里的SeekBar的使用
SeekBar的介绍 SeekingBar是这么样的一个东西,它常常用在播放视频.音步时用来调节音量.模糊阀值等场景. SeekBar里怎么是通过:android:layout_weight=&quo ...
最新文章
- EM不同气候条件下土壤稀有与丰富微生物类群的分化策略
- 宏基因组分析实战教程1. 背景知识
- python导入模块有同名_Python:导入与函数同名的模块
- SAP Spartacus里使用injection token提供默认配置的一个例子
- Netty从入门到精通-伪异步I/O编程
- 汇编的一些坑以及部分上机题目的实现
- 天天生鲜项目实战-思路 数据库设计
- wide and deep及其发展
- Hive实现同比环比计算
- u检验中的查u界值表_u检验和t检验
- DOX-HMDN-PEI 阿霉素-二氧化锰-聚乙烯亚胺/PEI-g-PLO(DCA) 聚鸟氨酸-聚乙烯亚胺
- 服务器系统2008恢复,win2003升级为win2008、win2012保留数据重装恢复数据说明
- 职业四象限,分分钟定位你的方向
- Windows环境下 .Net PetaPoco 配置 Mysql
- 【排序专训】练习题 士兵站队(中位数应用) 解题报告
- 幼儿园案例经验迁移_多种形式培养幼儿的迁移讲述能力
- 制造企业如何从0到1进行信息化建设?
- 一年的时间戳是多少?
- Git 如何回到过去,然后 再 回到将来
- 交互性是指用户与计算机之间,《计算机应用基础》职高教案
热门文章
- 【GameMaker】协程——异步执行代码
- 解决webbench运行时卡住的问题
- 软考中级软件设计笔记
- 【C语言编程】简单密码
- 【行为识别综述准备】
- mysql1.2.17,17.1 MySQL主从介绍17.2 准备工作17.3 配置主17.4 配置从17.5 测试主从同步...
- 《Adobe Premiere Pro视频编辑指南(第2版)》——水银回放引擎
- c8网络语言意思,老外常用的网络英文缩写
- 利用棋盘格图案完成相机标定
- 鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一)