Android - 读取JSON文件数据

简介: Android读取JSON文件数据JSON - JavaScript Object Notation 是一种存储和交换文本信息的语法。 JSON对象在花括号中书写。用逗号来分隔值。

Android读取JSON文件数据

JSON - JavaScript Object Notation
是一种存储和交换文本信息的语法。
JSON对象在花括号中书写。用逗号来分隔值。
JSON数组在方括号中表示。数组中的值也用逗号进行分隔。

使用Android API19

首先把testjson.json放在assets文件夹中

{
    "role":[
        {"id":1,"name":"Tom","say":"don't move"},
        {"id":2,"name":"Jerry","say":"catch me if you can"}
    ],
    "dog":"Ben"
}

创建一个TextView来显示读取到的数据。
先将JSON文件中的字符读出来,然后创建JSONObject。
实例化JSONObject后可以取出其中的对象。比如数组。
实例化JSONArray数组后,可以读出数组中的对象。而从数组中取得的对象,也是JSONObject类型的。读取对象的时候,需要注意返回类型。文件中的”name”是String型的。
最后用text.append(“”)的方式来组合出一个String,放到TextView中显示取得的数据。
以下是MainActivity.java


import java.io.BufferedReader;
import java.io.InputStreamReader;

import org.json.JSONArray;
import org.json.JSONObject;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;

public class MainActivity extends Activity {

    TextView text;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        text = (TextView) findViewById(R.id.text1);
        try {
            InputStreamReader isr = new InputStreamReader(getAssets().open("testjson.json"),"UTF-8");
            BufferedReader br = new BufferedReader(isr);
            String line;
            StringBuilder builder = new StringBuilder();
            while((line = br.readLine()) != null){
                builder.append(line);
            }
            br.close();
            isr.close();
            JSONObject testjson = new JSONObject(builder.toString());//builder读取了JSON中的数据。
                                                                     //直接传入JSONObject来构造一个实例
            JSONArray array = testjson.getJSONArray("role");         //从JSONObject中取出数组对象
            for (int i = 0; i < array.length(); i++) {
                JSONObject role = array.getJSONObject(i);    //取出数组中的对象
                text.append(role.getString("name") + ": ");  //取出数组中对象的各个值
                text.append(role.getString("say") + "\n");   
            }//

            text.append("now the " +testjson.getString("dog") + " is here");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }   
}
目录
相关文章
|
9天前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
55 1
|
13天前
|
JSON API 网络架构
【Azure 媒体服务】使用编码预设文件(Preset.json)来自定义编码任务 -- 创建视频缩略图
【Azure 媒体服务】使用编码预设文件(Preset.json)来自定义编码任务 -- 创建视频缩略图
|
8天前
|
存储 JSON API
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
——在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦! 淘宝API接口(如淘宝开放平台提供的API)允许开发者获取淘宝商品的各种信息,包括商品详情。然而,需要注意的是,直接访问淘宝的商品数据API通常需要商家身份或开发者权限,并且需要遵循淘宝的API使用协议。
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
|
10天前
|
开发工具 git 索引
repo sync 更新源码 android-12.0.0_r34, fatal: 不能重置索引文件至版本 ‘v2.27^0‘。
本文描述了在更新AOSP 12源码时遇到的repo同步错误,并提供了通过手动git pull更新repo工具来解决这一问题的方法。
31 1
|
11天前
|
存储 JSON JavaScript
|
13天前
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
8天前
|
存储 监控 数据库
Android经典实战之OkDownload的文件分段下载及合成原理
本文介绍了 OkDownload,一个高效的 Android 下载引擎,支持多线程下载、断点续传等功能。文章详细描述了文件分段下载及合成原理,包括任务创建、断点续传、并行下载等步骤,并展示了如何通过多种机制保证下载的稳定性和完整性。
16 0
|
9天前
|
JSON Java API
Jackson:SpringBoot中的JSON王者,优雅掌控数据之道
【8月更文挑战第29天】在Java的广阔生态中,SpringBoot以其“约定优于配置”的理念,极大地简化了企业级应用的开发流程。而在SpringBoot处理HTTP请求与响应的过程中,JSON数据的序列化和反序列化是不可或缺的一环。在众多JSON处理库中,Jackson凭借其高效、灵活和强大的特性,成为了SpringBoot中处理JSON数据的首选。今天,就让我们一起深入探讨Jackson如何在SpringBoot中优雅地控制JSON数据。
22 0
|
10天前
|
JSON 数据处理 数据格式
Python中JSON结构数据的高效增删改操作
Python中JSON结构数据的高效增删改操作
|
10天前
|
XML JSON 定位技术
在Python中操纵json数据的最佳方式
在Python中操纵json数据的最佳方式
下一篇
DDNS