美文网首页
Android中操作JSON数据

Android中操作JSON数据

作者: baolvlv | 来源:发表于2017-09-01 14:06 被阅读0次

            JSON数据已经成为了互联网中大多数数据的传递方式,本文首先介绍了JSON数据格式及其特点,而后实现了在Android中加载并解析JSON数据和在Android中生成JSON数据的操作。

    详细代码:github.com/Baolvlv/LearnAndroid/tree/master/TestJSON

    1.JSON数据格式简介

    JSON:javaScript对象表示法,储存和交换文本信息的语法

    特点:轻量级文本数据交换格式,独立与语言与平台,自我描述性易于理解

    相比xml数据:更小更快更易解析。没有结束标签,更短,读写速度更快,使用数组,没有保留字。

    语法:数据用键值对保存,数据由逗号分隔,花括号保存对象,方括号保存数组

    JSON的值可以为:数字,字符串,逻辑值,数组,对象,null

    2.读取JSON 格式数据

    创建json格式数据,复制在assets目录下

    通过getAssets().open()方法打开assets目录下的文件,结果为InputStream,指定编码方式后创建InputStreamReader,转为BufferedReader,使用BufferReader.readLine()方法读取文件为String,使用StringBuffer存整个文本文件。关闭输入流

    InputStreamReader isr =newInputStreamReader(getAssets().open("test.json"),"UTF-8");

    BufferedReader br =newBufferedReader(isr);

    String line;

    StringBuffer sb =newStringBuffer();

    while((line = br.readLine())!=null){

    sb.append(line);

    }

    br.close();

    isr.close();

    通过String类型的JSON文本,创建JSON对象

    //创建JSONObject对象

    JSONObject root =newJSONObject(sb.toString());

    JSON对象可以通过getInt(),getString(),getJSONArray()获取相应的值

    root.getString(“cat")

    lan.getInt(“id”)

    root.getJSONArray("language")

    JSONArray可以通过getJSON(index),获取数组中索引位置的JSON对象

    JSONObject lan = ja.getJSONObject(i);

    所有关于JSON的读取都是通过键读取值

    3.创建JSON格式数据

    创建根JSON对象,创建JSON对象,为对象添加属性,将对象存入JSON数组,将数组作为根对象的属性值添加到属性,添加其他属性。将根对象转为字符穿输出。

    //创建根对象

    JSONObject root =newJSONObject();

    JSONObject lan1 =newJSONObject();

    //为对象添加属性

    lan1.put("id",1);

    lan1.put("ide","Eclipse");

    lan1.put("name","java”);

    //创建JSON数组

    JSONArray ja =newJSONArray();

    ja.put(lan1);

    ja.put(lan2);

    ja.put(lan3);

    //将数组添加为根对象属性

    root.put("language",ja);

    //添加属性时,第二个参数为Object,String对象本身为为Object

    root.put("cat","it”);

    //将根对象转为String输出

    Log.i("print",root.toString());

    相关文章

      网友评论

          本文标题:Android中操作JSON数据

          本文链接:https://www.haomeiwen.com/subject/duzhjxtx.html