Android中如何解析JSON数据

安卓Json数据以及解析为javaBean 安卓解析Json类型数据什么是json使用JSONObject进行解析 什么是json JSON(JavaScript Object Notation,JS 对象简谱) 是一种轻量级的数据交换格式。 示例: [ { "id": "0", "name": "Bilibili", "url": "https://www.bilibili.com/", "version": "1.5" }, { "id": "1", "name": "Baidu", 阅读详情

 在Android的网络编程中,JSON是比XML使用更为广泛的数据传输机制。在许多的http网络请求或接口调用中,返回的很多都是JSON。所以学会解析JSON是学会Android的基本技能。

        简单介绍下JSON,JSON是轻量级的文本数据交换格式,独立于语言和平台。比XML更小,更快,更易解析。JSON是用键值对来保存数据的。JSON保存的值可以是数字、字符串、布尔值、数组和对象。

        废话少说,直接上代码。下面对以下JOSN进行解析:

[plain]  view plain  copy
 print ?
  1. {  
  2.       
  3. "language":[  
  4.           
  5.              {  
  6.             "id":1,  
  7.             "name":"Java",  
  8.             "ide":"Eclipse"  
  9.         },  
  10.           
  11.              {  
  12.             "id":2,  
  13.             "name":"C++",  
  14.             "ide":"Visual Studio"  
  15.         }   
  16.              
  17.     ]  
  18.   
  19. }  

在该实验中,是把该JSON保存为language.json文件并放置在assets文件夹下。在实际的项目开发中,JSON一般是http请求后由服务器返回的。具体实现代码如下:
[java]  view plain  copy
 print ?
  1. try {  
  2.     InputStreamReader inputStreamReader = new InputStreamReader(getAssets().open("languages.json"), "UTF-8");//使用utf-8的编码方式读取json;并新建该输入流;  
  3.     BufferedReader bufferedReader = new BufferedReader(inputStreamReader);//使用BufferReader读取输入流中的数据;  
  4.     String line;  
  5.     StringBuilder stringBuilder = new StringBuilder();//所有读取的json放到StringBuilder中,这里也可以使用StringBuffer,效果一样;  
  6.     while ((line = bufferedReader.readLine()) != null) {  
  7.         stringBuilder.append(line);  
  8.     }  
  9.     bufferedReader.close();//按相反的顺序关闭流;  
  10.     inputStreamReader.close();  
  11.   
  12.     //以下开始进行json解析;  
  13.     JSONObject language = new JSONObject(stringBuilder.toString());//每一个{}花括号的内容就是一个JSON对象;  
  14.     JSONArray array = language.getJSONArray("language");//获取language这个对象里面的JSON数组,因为每一个[]中括号的内容就是一个JSON数组,数组内可能包含多个JSON对象;  
  15.     for (int i = 0; i < array.length(); i++) {//循环遍历该数组;  
  16.         JSONObject item = array.getJSONObject(i);//建立数组中的对象;  
  17.         text.append(item.getInt("id") + "  " + item.getString("name") + "  " + item.getString("ide"));//根据键值对获取属性值;  
  18.         text.append("\n");  
  19.     }  
  20. } catch (IOException e) {  
  21.     e.printStackTrace();  
  22. } catch (JSONException e) {  
  23.     e.printStackTrace();  
  24. }  

程序运行后,截图如下:


      至此,已经成功完成对JSON字符串的解析。个人对XML解析和JSON解析的理解就像是剥洋葱,是一层一层往里面进行解析,只要搞清楚逻辑关系,就不会有问题。JSON有时候会碰到3层,4层的循环嵌套,会比较麻烦,只要按照步骤进行,就不会出错。


github主页:https://github.com/chenyufeng1991  。欢迎大家访问!

Android使用JSON解析数据 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于 Web API 交互。Kotlin 提供了多种解析 JSON 数据的方法,其中和Gson是常见的选择。 阅读详情

相关推荐

Android万能解析并获取Json数据

Android万能解析并获取Json数据 以下是本人对Json数据初略的理解,不对之处希望大家请教 想要解析Json数据,首先要了解Json数据的组成 Json的组成 我自己学的时候查了很多关于json数据的结构,得到的答案都不是自己想要的。 很简单,Json数据中由两种结构组成,JsonObject和JsonArray。 JsonObject:就是用 { } 括起一个对象Object的数据组,是...

weixin_38672184的博客 6181

Android okhttp 创建请求参数格式为json数据格式

这里涉及到数据okhttp 的一些使用,我就不多说了,自己在主的项目去添加相关的依赖。 最新依赖看github 上最新的 https://github.com/square/okhttp 注意:手机调试和本地后台对接接口必须是在 同一局域网内测试 还有相关的文件清单 给予相关的权限 <uses-permission android:name="android.permi...

qq_36771930的博客 2340

获取并解析Assets资源文件及Json格式演示示例

【源码免费下载链接】:https://renmaiwang.cn/s/2bwrn 在Android应用开发中,我们经常会遇到需要从项目资源文件中读取数据的情况,尤其是非代码文件,如文本、配置文件或JSON数据等。在这种场景下,Android提供了`Assets`目录,用于存放这些非编译型资源。本教程将详细介绍如何读取`Assets`中的资源文件,并进行JSON解析。让我们理解什么是`Assets`目录。在Android工程的`src/main`目录下,有一个名为`assets`的特殊目录,开发者可以在这里放置各种类型的文件,如数据库文件、配置文件、音频、视频等。这些文件不会经过编译过程,但在运行时可以通过AssetManager访问。读取`Assets`资源文件的步骤如下:1. 获取`AssetManager`对象:这是Android系统提供的用于访问`Assets`资源的管理器。通常在Activity中,我们可以使用以下方式获取: ```java AssetManager assetManager = getAssets(); ```2. 打开文件:使用`AssetManager`的`open()`方法打开`Assets`目录下的文件。例如,要打开名为`data.json`的文件,可以这样做: ```java InputStream inputStream = null; try { inputStream = assetManager.open("data.json"); } catch (IOException e) { e.printStackTrace(); } ``` 注意处理可能抛出的`IOException`。3. 读取文件内容:有了输入流`InputStream`,我们可以读取文件内容。这通常涉及转换为`BufferedReader`,然后逐行读取: ``

Android使用okhttp解析json,超简单的案例

在你要实现功能的activity.java里面直接写就行,下面第一段代码是实现okhttp通信 private void okhttpDate() { Log.i("TAG","--ok-"); new Thread(new Runnable() { @Override public void run() { OkHttpClient client=new OkHttpClient(

程序猿大波的博客 1941

手把手教你搭建三端口DC-DC变换器(含Boost+Buck电路实战)

本文详细介绍了如何从零开始搭建三端口DC-DC变换器,涵盖Boost和Buck电路的硬件设计、元器件选型、电路板布局、焊接技巧、控制系统设计与调试等关键步骤。通过实战案例和优化建议,帮助工程师避开常见陷阱,提升系统效率和稳定性,适用于光伏、储能等电力电子应用场景。

x8y9z0的博客 929

【破局之道】LangChain4j 0.31.0 + Java 8 + Spring Boot:在“过时”环境中构建本地大模型应用的实战指南

本文为使用Java 8和Spring Boot等“过时”技术栈的团队提供了构建本地大模型应用的实战指南。通过采用LangChain4j 0.31.0这一兼容版本,结合Ollama部署本地大模型,开发者无需升级JDK即可在现有项目中快速集成AI能力,实现智能问答、文档摘要等功能,为传统项目注入创新活力。

t4y5u6i7o的博客 557

Android解析JSON数据

JSONObject是Android内置的JSON解析库,通过它可以将JSON字符串转换为Java对象或将Java对象转换为JSON字符串。GSON是Google开源的Java JSON解析库,支持将JSON字符串自动转换为Java对象,同时也支持将Java对象自动转换成JSON字符串。String jsonString = "{'name':'张三','age':25}";String jsonString = "{'name':'张三','age':25}";2)将JSON字符串转换为Java对象。

qq_41878758的博客 4874

关于IBV_WR_RDMA_WRITE_WITH_IMM的理解

对于IBV_WC_RECV_RDMA_WITH_IMM的描述是这样的,也就是说并不需要sge,所以下发的sge,可以是NULL,个数可以是0。(1)需要下发post_recv,但是下发是post_recv当中的sge的地址可以是空,sge个数可以是0。伪代码,实际的rkey和addr已经通过socket交换。并且poll_cq时,有返回,在这篇文章当中对于poll_cq时,主要区别点有两个,这个是对于接收端而言。(2)可以带即时数据,

qq_38158479的博客 2418

Android安卓——json数据解析

一、什么是json json(Javascript Object Notation)是一种轻量级的数据交换格式,相比于xml这种数据交换格式来说,因为解析xml比较的复杂,而且需要编写大段的代码,所以客户端和服 务器的数据交换格式往往通过json来进行交换。尤其是对于web开发来说,json数据格式在客户端直接可以通过javascript来进行解析。 json一共有两种数据结构,一种...

256

(BS ISO 11898-1:2015)CAN_FD 总线协议详解1- 基本概念描述

本文对can总线协议做了详细的讲解,can协议里面的每一个知识点都做了详细且举一反三的论述,读了本文可以不用读can协议了。

zhangziranzm的博客 2314

EPLAN中2D安装板的绘制方法示例

EPLAN中2D安装板的绘制方法示例

Robot_PLC_HMI_Automation 3216

安卓大json文件解析_Android之JSON格式数据解析

packagecom.rainsong.jsondemo;importjava.io.IOException;importjava.net.URLEncoder;importjava.util.ArrayList;importorg.apache.http.HttpResponse;importorg.apache.http.NameValuePair;importorg.apache.http....

weixin_35843812的博客 211

Android Binder——数据传递载体(二十一)

同一进程间的对象传递都是通过引用来做的,因而本质上就是传递了一个内存地址。而跨进程采用了虚拟内存机制,两个进程都有自己独立的内存地址空间,所以跨进程传递的地址值是无效的。进程间的数据传递是 Binder 机制中的重要一环,Android 系统中担负这一重任的就是 Parcel。Parcel 是一种数据的载体,用于承载希望通过 IBinder 发送的相关信息(包括数据和对象引用)。正是基于 Parcel 这种跨进程传输数据的能力,进程间的 IPC 通信才能更加平滑可靠。

小旭的专栏 576

安卓大json文件解析_Android随手笔记44之JSON数据解析

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式。本文将主要介绍在Android开发中,如何在服务器端创建JSON数据,以及如何在Android客户端对JSON数据进行解析。1.JSON数据结构在JSON中有两种数据结构:对象和数组。1.1对象在JSON中,一个对象以“{”(左括号...

weixin_42361622的博客 264

YOLO11改进-注意力-引入级联组注意力机制(Cascaded Group Attention, CGA)

输入特征拆分:输入特征进入 CGA 模块后,被均匀拆分为个部分,每个部分作为一个注意力头的输入,这样每个头关注输入特征的不同部分,实现特征的并行处理,同时为提高注意力多样性奠定基础。注意力头计算单元:每个注意力头包含三个线性投影层、、用于将输入特征映射到不同子空间,以及计算自注意力的单元。在计算过程中,通过注意力头之间的级联操作,前一个头的输出会累加到下一个头的输入上,实现特征的逐步细化。

qq_64693987的博客 2489

C# Socket通信从入门到精通(14)——多个异步UDP客户端C#代码实现(史上最全)

本文详细介绍了Socket通信中多个异步Udp客户端功能的实现、介绍如何使用多个客户端与多个服务器进行数据的交互,包含连接服务器、断开服务器、发送数据、读取数据、C#代码实现,由高级工程师多年经验总结而成,绝对干货!

qq_34059233的博客 1982

安卓开发工程师-数据解析(JSON、XML)

在解析 JSON 或 XML 数据时,可能会出现各种异常,如格式错误、数据缺失、类型不匹配等。为了保证程序的健壮性,需要对这些异常进行合理的处理。在解析 JSON 或 XML 数据时,可以将解析后的数据缓存起来,以便下次使用时可以直接从缓存中获取,而无需重新解析。在 Android 中,可以使用 DOM(Document Object Model)解析器来解析 XML 数据。动态解析是指在不知道 JSON 或 XML 数据的具体结构的情况下,能够灵活地解析和处理数据。包来解析 JSON 数据。

qq_62784677的博客 1049

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【小王的安卓之路】Android解析JSON数据

Android解析JSON数据 一.什么是JSON 二.怎么解析JSON 一.什么是JSON: 1.1JSON的定义: JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想...

小王的学习blog 240

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

安卓大json文件解析_Android - JSON数据的封装和解析

听着谢春花的《茶花伴》。--其中的雨生哀 镜尘满 韶颜虽易改。弃脂彩 肠何断 拂手去青苔。写出是一个带着酒气和茶味少女在朦朦小雨☔️下,独自弹着????漫步在陡缓的山路中,似乎好像长期等待⌛️心目中另一半人。然而在旁边的小溪照着水镜,看着美好的年华渐渐流失而感到美好的环境只是又一春天来,内心又一次衷心诉了春过半 平生光影短。让我们在惜别和怀念的时候但愿有茶花伴吧!相信android从事着多json格式的...

weixin_39600616的博客 270

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

安卓大json文件解析_Android系列---JSON数据解析

一、什么是jsonjson(Javascript Object Notation)是一种轻量级的数据交换格式,相比于xml这种数据交换格式来说,因为解析xml比较的复杂,而且需要编写大段的代码,所以客户端和服务器的数据交换格式往往通过json来进行交换。尤其是对于web开发来说,json数据格式在客户端直接可以通过javascript来进行解析。json一共有两种数据结构,一种是以 (key/va...

weixin_39975486的博客 425

安卓解析php json,Android_android解析JSON数据,JSONObject的使用  一、 JSON - phpStudy

android解析JSON数据JSONObject的使用一、 JSON对象的使用:String content = "{'username': 'linux', 'password': '123456'}";JSONObject jsonObject = new JSONObject(content);String username = jsonObject.getString("username...

weixin_32552195的博客 193

[Android]【安卓】Json数据的快速拼装和解析

[Android]【安卓】Json数据的快速拼装和解析 本篇博客已收录到我的安卓开发小结中——点击【安卓开发小结】 参考资料:介绍 Json 一、什么是Json数据 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Stand...

Hy的博客 2598

Android解析JSON格式数据

Android解析JSON格式数据

Android应用开发工程师 1883

Android之解析Json数据

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 在Android中被广泛运用于客户端和网络(或者说服务器)通信。 JSON 表示名称 / 值对的方式   按照最简单的形式,可以用下面这样的 JSON 表示"名称 /

moo'' 学习笔记 2026
上一篇: Android中如何解析XML数据
下一篇: Android Studio中的Project和Module是个什么鬼?
心态决定状态
博客等级 码龄16年 14粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值