Android在大都情况会取得后台Service返回的json数据来做前端展示。那么Android是如何处理json文件的呢?我们就一起跟着今天的教程一步步来实现吧。

目标

设本地有一个demo.json,内容如下

{"banks" : [{"value": "CDB","text":"国家开发银行"},{"value": "ICBC","text":"中国工商银行"},{"value": "ABC","text": "中国农业银行"},{"value": "BOC","text": "中国银行"},{"value": "cCB","text": "中国建设银行"}]
}

然后手机上有一个按钮,点一下这个按钮在手机的读行文本内展示成如下样子

进入开发

  1. 在手机上拖一个按钮、拖一个TextView。
  2. 然后把按钮和Text View的关系都设成上、下、左、右都为16,然后建立成Vertical Chain的关系。并且把按钮位于TextView的上方面。
  3. 把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文件并显示相关推荐

  1. Android进阶之路 - 存、取、读 本地 Json 文件

    最近在开发中又开始加载一些本地的json数据源,回头看之前竟然没记录,赶紧记录一波 ~ 如何准备一个合格的json文件? AndoridStudio中如何存放json文件? 如何读取本地Json文件数 ...

  2. php读本地json文件内容,php读取本地json文件有哪些方法

    这次给大家带来php读取本地json文件有哪些方法,php读取本地json文件的注意事项有哪些,下面就是实战案例,一起来看一下. 1.data.json文件{ "goods":[ ...

  3. Android入门第41天-Android中的Service(bindService)

    介绍 在前一天我们介绍了Android中有两种启动Service的方法.并擅述了startService和bindService的区别.同时我们着重讲了startService. 因此今天我们就来讲b ...

  4. Android入门第19天-Android里的RatingBar的使用

    介绍 我们先来看一下什么叫RatingBar长什么样的. 我们很多时候订单评价给5星.打车评价都是用的这个RatingBar.本节我们学的这个RatingBar(星级评分条)其实在使用上是非常简单的, ...

  5. Android入门第31天-Android里的ViewFlipper翻转视图的使用

    介绍 本篇给大家带了的是ViewFlipper,它是Android自带的一个多页面管理控件,且可以自动播放! 和ViewPager不同,ViewPager是一页页的,而ViewFlipper则是一层层 ...

  6. Android入门第20天-Android里的ScrollView的使用

    介绍 ScrollView(滚动条),它有两种"滚动条": 竖直滚动条: 水平方向上的滚动条:HorizontalScrollView: 我们经常可以看到在手机里正在垂直加载一堆的 ...

  7. Android入门第1天-Android Studio的安装

    安装前的准备 在hosts文件中加入dl.google.com的ip映射 Android Studio在安装时大量的依赖库会从dl.google.com下载.在国内安装步骤卡死基本都是卡死在该步.那么 ...

  8. Android入门第30天-Android里的Toast的使用

    介绍 本篇带来的是: Android用于提示信息的一个控件--Toast(吐司)!Toast是一种很方便的消息提示框,会在 屏幕中显示一个消息提示框,没任何按钮,也不会获得焦点一段时间过后自动消失! ...

  9. Android入门第18天-Android里的SeekBar的使用

    SeekBar的介绍 SeekingBar是这么样的一个东西,它常常用在播放视频.音步时用来调节音量.模糊阀值等场景. SeekBar里怎么是通过:android:layout_weight=&quo ...

最新文章

  1. EM不同气候条件下土壤稀有与丰富微生物类群的分化策略
  2. 宏基因组分析实战教程1. 背景知识
  3. python导入模块有同名_Python:导入与函数同名的模块
  4. SAP Spartacus里使用injection token提供默认配置的一个例子
  5. Netty从入门到精通-伪异步I/O编程
  6. 汇编的一些坑以及部分上机题目的实现
  7. 天天生鲜项目实战-思路 数据库设计
  8. wide and deep及其发展
  9. Hive实现同比环比计算
  10. u检验中的查u界值表_u检验和t检验
  11. DOX-HMDN-PEI 阿霉素-二氧化锰-聚乙烯亚胺/PEI-g-PLO(DCA) 聚鸟氨酸-聚乙烯亚胺
  12. 服务器系统2008恢复,win2003升级为win2008、win2012保留数据重装恢复数据说明
  13. 职业四象限,分分钟定位你的方向
  14. Windows环境下 .Net PetaPoco 配置 Mysql
  15. 【排序专训】练习题 士兵站队(中位数应用) 解题报告
  16. 幼儿园案例经验迁移_多种形式培养幼儿的迁移讲述能力
  17. 制造企业如何从0到1进行信息化建设?
  18. 一年的时间戳是多少?
  19. Git 如何回到过去,然后 再 回到将来
  20. 交互性是指用户与计算机之间,《计算机应用基础》职高教案

热门文章

  1. 【GameMaker】协程——异步执行代码
  2. 解决webbench运行时卡住的问题
  3. 软考中级软件设计笔记
  4. 【C语言编程】简单密码
  5. 【行为识别综述准备】
  6. mysql1.2.17,17.1 MySQL主从介绍17.2 准备工作17.3 配置主17.4 配置从17.5 测试主从同步...
  7. 《Adobe Premiere Pro视频编辑指南(第2版)》——水银回放引擎
  8. c8网络语言意思,老外常用的网络英文缩写
  9. 利用棋盘格图案完成相机标定
  10. 鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一)