首页 > 代码库 > Android中JSON数据格式的简单使用

Android中JSON数据格式的简单使用

/** * JSON:JavaScript对象表示法(JavaScript Object Notation)。 <br/> * JSON是存储和交换文本信息的语法。<br/> *  * 特点:<br/> * JSON是轻量级的文本数据交换格式<br/> * JSON独立于语言和平台<br/> * JSON具有自我描述性,更以理解<br/> *  * 与XML的区别:<br/> * 类似XML,比XML更小、更快、更易解析<br/> * 没有结束标签<br/> * 更短<br/> * 读写的速度更快<br/> * 使用数组<br/> * 不使用保留字<br/> *  * JSON语法是JavaScript对象表示法语法的子集。<br/> * 数据在名称/值对中<br/> * 数据由逗号分隔<br/> * 花括号保存对象<br/> * 方括号保存数组<br/> *  * JSON值可以是:<br/> * 数字(正数或浮点数)<br/> * 字符串(在双引号中)<br/> * 逻辑值(true或false)<br/> * 数组(在方括号中)<br/> * 对象(在花括号中)<br/> * null<br/> *  * @author wangzhu *  */

 

1、从文件中读取JSON对象

/**     * 读取Json对象     */    private void readJsonObject() {        String json = readFile();        try {            JSONObject root = new JSONObject(json);            System.err.println("cat=" + root.getString("cat"));            JSONArray array = root.getJSONArray("language");            for (int i = 0; i < array.length(); i++) {                System.err.println("------------");                JSONObject object = array.getJSONObject(i);                System.err.println("id=" + object.getInt("id"));                System.err.println("ide=" + object.getString("ide"));                System.err.println("name=" + object.getString("name"));            }        } catch (JSONException e) {            e.printStackTrace();        }    }    /**     * 读取文件中的内容,文本编码方式为UTF-8     *      * @return     */    private String readFile() {        StringBuilder accum = new StringBuilder();        InputStreamReader isr = null;        BufferedReader br = null;        try {            isr = new InputStreamReader(getAssets().open("testJson.json"),                    "UTF-8");            br = new BufferedReader(isr);            String line = null;            while ((line = br.readLine()) != null) {                accum.append(line);            }        } catch (UnsupportedEncodingException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        } finally {            if (br != null) {                try {                    br.close();                } catch (IOException e) {                    e.printStackTrace();                }            }            if (isr != null) {                try {                    isr.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }        return accum.toString();    }

截图:

Json文件:

执行结果:

2、创建Json对象

/**     * 创建Json对象     */    private void createJsonObject() {        try {            JSONObject root = new JSONObject();            root.put("cat", "it");            JSONArray array = new JSONArray();            JSONObject lan1 = new JSONObject();            lan1.put("id", 1);            lan1.put("ide", "Eclipse");            lan1.put("name", "Java");            array.put(lan1);            JSONObject lan2 = new JSONObject();            lan2.put("id", 2);            lan2.put("ide", "Xcode");            lan2.put("name", "Swift");            array.put(lan2);            JSONObject lan3 = new JSONObject();            lan3.put("id", 3);            lan3.put("ide", "Visual Studio");            lan3.put("name", "C#");            array.put(lan3);            root.put("language", array);            System.err.println("createJsonObject: " + root.toString());        } catch (JSONException e) {            e.printStackTrace();        }    }

执行结果:

Android中JSON数据格式的简单使用