安卓解析JSON文件
安卓解析JSON文件
根据JOSN文件的格式,文件只有两种数据,一是对象数据,以 {}为分隔,二是数组,以[]分隔
以下介绍安卓如何解析一个JSON文件,该文件存放在assets目录下,即:assets/xx.json
工程目录结构以及简单布局:
要解析的JSON文件数据
代码实现:
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文件的更多相关文章
- Android--------使用gson解析json文件
##使用gson解析json文件 **json的格式有两种:** **1. {}类型,及数据用{}包含:** **2. []类型,即数据用[]包含:** 下面用个例子,简单的介绍gson如何解析jso ...
- JAVA简便解析json文件
JAVA简便解析json文件 首先放上我要解析的json文件: { "resultcode":"200", "reason":"S ...
- python脚本解析json文件
python脚本解析json文件 没写完.但是有效果.初次尝试,写的比较不简洁... 比较烦的地方在于: 1,中文编码: pSpecs.decode('raw_unicode_escape') 2,花 ...
- 使用google-gson类库解析json文件
使用google-gson类库解析json文件 使用JsonParser解析器来解析字符串和输入流,变成json对象 代码如下: public class Readjson { public stat ...
- 安卓解析XML文件
安卓解析XML文件 主要有三种方式:DOM解析.SAX解析.PULL解析 其中: DOM解析为等XMl文件全部加载后,然后根据需要解析的内容解析出所需的内容数据. SAX解析为从XML文件中执行一行, ...
- Java解析JSON文件的方法
http://blog.sina.com.cn/s/blog_628cc2b70101dydc.html java读取文件的方法 http://www.cnblogs.com/lovebread/ar ...
- Logstash:解析 JSON 文件并导入到 Elasticsearch 中
转载自:https://elasticstack.blog.csdn.net/article/details/114383426 在今天的文章中,我们将详述如何使用 Logstash 来解析 JSON ...
- 安卓解析 json 4种格式 全解析
总共4种json , 还提供了 httclient 和 httpurlconnection 2种方式获取json的方法(请把baseurl 改为可以地址比如http://www.sohu.c ...
- C#解析json文件的方法
C# 解析 json JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集. JSON采用完全独立于语言的 ...
随机推荐
- map最基本操作
#include<iostream> #include<map> using namespace std; int main() { /*map<int,char> ...
- JS 、JQ 获取宽高总结 & JS中getBoundingClientRect的作用及兼容方案
1.getBoundingClientRect的作用 getBoundingClientRect用于获取某个html元素相对于视窗的位置集合. 执行 object.getBoundingClien ...
- 一、submit和button区别
一.submit和button区别 一.HTTP方法:GET.POST
- TCP的三次握手与四次挥手详解
TCP的三次握手与四次挥手是TCP创建连接和关闭连接的核心流程,我们就从一个TCP结构图开始探究中的奥秘 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序 ...
- 多数据源连接Oracle报错,linux熵池耗尽问题
最近碰到了个很有意思的问题,springboot加载多数据源,遇到了在启动时数据库连接报错的问题. 报错信息: The error occurred while executing a query 然 ...
- dedeCMS数据库字段详细介绍
dede_addonarticle 附加文章表 aid int(11) 文章编号 typeid int(11) 分类栏目编号 body mediumtext 文章内容 dede_addonflash ...
- java mongodb 增删改查 工具类
package com.jttx.demo; import com.mongodb.*; import com.mongodb.util.JSON; import java.net.Unkno ...
- 【数位dp】bzoj1799: [Ahoi2009]self 同类分布
各种奇怪姿势的数位dp Description 给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数. Sample Input 10 19 Sample Output 3 HINT [约束条 ...
- (50)zabbix API二次开发使用与介绍
zabbix API开发库 zabbix API请求和响应都是json,并且还提供了各种语法的lib库,http://zabbix.org/wiki/Docs/api/libraries,包含php. ...
- tkinter学习-选择按钮
阅读目录 Checkbutton Radiobutton LabelFrame checkbutton : 说明:多选框控件,用于在程序中提供多项选择框,但是处理“多选一”的问题,还是交给 Radio ...