安卓解析JSON文件

根据JOSN文件的格式,文件只有两种数据,一是对象数据,以 {}为分隔,二是数组,以[]分隔

以下介绍安卓如何解析一个JSON文件,该文件存放在assets目录下,即:assets/xx.json

工程目录结构以及简单布局:

要解析的JSON文件数据

代码实现:

package com.lhy.nojsonfile;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.json.JSONException;
import org.json.JSONObject;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity
{
    Button bt_Json;
    TextView tv_Json;
    @Override
    protected void onCreate ( Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt_Json = (Button) this.findViewById(R.id.bt_Json);
        bt_Json.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick ( View v)
            {
                bt_Json_click();
            }
        });
    tv_Json = (TextView) this.findViewById(R.id.tv_Json);
    }
    // 解析JSON文件
    protected void bt_Json_click ()
    {
        try
        {
        // 获取json文件数据源,流的方式呈现
        InputStream inputStream = this.getAssets().open("xx.json");
        // 读取JSON文件流
        InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "gbk");
        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
        String temp = "";
        String jsonSource = "";
            //一行一行的读取
            while ((temp = bufferedReader.readLine()) != null)
            {
                jsonSource += temp;
            }
        //关闭
        bufferedReader.close();
        inputStream.close();
        // JSON解析对象
        JSONObject jsonObject = new JSONObject(jsonSource);
        // 获取JOSN文件当中的数据对象weatherinfo【可知JSON文件数据只有两种,一是对象{},二是数组[]】
        JSONObject jsonObjectWeatherinfo = jsonObject.getJSONObject("weatherinfo");
        // JSOn文件某一数据对象的属性,例如weatherinfo对象的属性city
        String result = jsonObjectWeatherinfo.getString("city");
        tv_Json.setText(result);
        }
    catch (JSONException e)
    {
        e.printStackTrace();
        Log.i("lhy", "JSONException:" + e.toString());
    }
    catch (IOException e)
    {
        Log.i("lhy", "IOException:" + e.toString());
        e.printStackTrace();
    }
   }
}

结果:

安卓解析JSON文件的更多相关文章

  1. Android--------使用gson解析json文件

    ##使用gson解析json文件 **json的格式有两种:** **1. {}类型,及数据用{}包含:** **2. []类型,即数据用[]包含:** 下面用个例子,简单的介绍gson如何解析jso ...

  2. JAVA简便解析json文件

    JAVA简便解析json文件 首先放上我要解析的json文件: { "resultcode":"200", "reason":"S ...

  3. python脚本解析json文件

    python脚本解析json文件 没写完.但是有效果.初次尝试,写的比较不简洁... 比较烦的地方在于: 1,中文编码: pSpecs.decode('raw_unicode_escape') 2,花 ...

  4. 使用google-gson类库解析json文件

    使用google-gson类库解析json文件 使用JsonParser解析器来解析字符串和输入流,变成json对象 代码如下: public class Readjson { public stat ...

  5. 安卓解析XML文件

    安卓解析XML文件 主要有三种方式:DOM解析.SAX解析.PULL解析 其中: DOM解析为等XMl文件全部加载后,然后根据需要解析的内容解析出所需的内容数据. SAX解析为从XML文件中执行一行, ...

  6. Java解析JSON文件的方法

    http://blog.sina.com.cn/s/blog_628cc2b70101dydc.html java读取文件的方法 http://www.cnblogs.com/lovebread/ar ...

  7. Logstash:解析 JSON 文件并导入到 Elasticsearch 中

    转载自:https://elasticstack.blog.csdn.net/article/details/114383426 在今天的文章中,我们将详述如何使用 Logstash 来解析 JSON ...

  8. 安卓解析 json 4种格式 全解析

    总共4种json  ,    还提供了 httclient  和 httpurlconnection 2种方式获取json的方法(请把baseurl 改为可以地址比如http://www.sohu.c ...

  9. C#解析json文件的方法

    C# 解析 json JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集. JSON采用完全独立于语言的 ...

随机推荐

  1. 单源最短路Dijstra

    #include<iostream> #include<cstring> #define INF 0x3f3f3f3f using namespace std; ][],d[] ...

  2. iview 表单验证 input 用失去焦点事件 blur, select下拉选框 要用change事件 验证

    birthday: [{ required: true, message: '内容不能为空', trigger: 'blur' }],belongDept: [{ required: true, me ...

  3. java项目指向maven进行构建方式

    1.在需要运行的机器中环境变量中配置maven 运行setting 4 配置环境变量 2.运行项目进行重新构建:alt+F5

  4. ios lazying load

    初步写一些自己对于lazyload的看法吧.这篇文章主要针对普通view,对于image相关的的懒加载,准备过几天研究一下在写. 懒加载,又称为延迟加载.通常用法,你有一个UITextField类型的 ...

  5. 任务十一:移动Web页面布局实践

    面向人群: 有一定HTML及CSS基础,想要尝试移动开发 难度: 中 重要说明 百度前端技术学院的课程任务是由百度前端工程师专为对前端不同掌握程度的同学设计.我们尽力保证课程内容的质量以及学习难度的合 ...

  6. 洛谷 P2921 在农场万圣节

    https://www.luogu.org/problemnew/show/P2921 开始感觉这题30行代码就可以搞定,还是太菜啦,还是乖乖地写了tarjan. 对图进行缩点,那么这个强联通分量中的 ...

  7. 初涉k-d tree

    听说k-d tree是一个骗分的好东西?(但是复杂度差评??? 还听说绍一的kdt常数特别小? KDT是什么 KDT的全称是k-degree tree,顾名思义,这是一种处理多维空间的数据结构. 例如 ...

  8. (53)zabbix模板

    zabbix模板是做什么的? 平时工作中,我们需要监控web.mysql.redis.nginx这些服务器,众多服务器的业务都是一样的,所以我们只要事先创建好模板,然后所有服务器链接这个模板即可,如果 ...

  9. linux设备驱动程序 - 待解决问题记录

    1.每个模式都有自己的内存映射,也即自己的地址空间?(P26) http://www.cnblogs.com/wuchanming/p/4360277.html (不知道是不是,没时间看)

  10. FTP实验报告

    FTP实验报告 制作人:全心全意 准备工作: linux1:192.168.100.4 关闭防火墙.selinux机制 配置yum源 匿名访问 1.安装vsftpd服务和客户端 [root@local ...