[记录]Android操作JSON

languages.json文件

{
    "languages":[
        {"id"=1,"name"="Java","ide"="Eclipse"},
        {"id"=2,"name"="Swift","ide"="Xcode"},
        {"id"=3,"name"="C#","ide"="Visual Studio"}
    ],
    "cat"="it"
}

解析JSON关键代码

try {
            //创建一个InputStreamReader,用于读取指定json文件的内容
            InputStreamReader isr = new InputStreamReader(getAssets().open("languages.json"),"UTF-8");
            BufferedReader br = new BufferedReader(isr);
            String line;
            StringBuilder builder = new StringBuilder();
            //读取InputStreamReader中的内容
            while((line=br.readLine())!=null){
                builder.append(line);
            }
            br.close();
            isr.close();
            //创建JSONObject
            JSONObject root = new JSONObject(builder.toString());
            //读取属性为cat的值
            Log.d("Json", root.getString("cat"));
            //获取属性为languages内的数组
            JSONArray array = root.getJSONArray("languages");
            for (int i = 0; i < array.length(); i++) {
                JSONObject lan = array.getJSONObject(i);
                Log.d("Json", lan.getInt("id")+"-"+lan.getString("name")+"-"+lan.getString("ide"));
            }
            
            
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        }

 

生成Json关键代码

try {
            //创建一个JSONObject对象
            JSONObject root = new JSONObject();
            //添加一个属性cat值为it到root中
            root.put("cat", "it");
            String[]names = {"Java","Swift","C#"};
            String[] ides = {"Eclipse","Xcode","Visual Studio"};
            //创建一个JSONArray,循环添加三个元素
            JSONArray array = new JSONArray();
            for (int i = 0; i < 3; i++) {
                JSONObject lan = new JSONObject();
                lan.put("id", i+1);
                lan.put("name",names[i]);
                lan.put("ide", ides[i]);
                array.put(lan);
            }
            //添加一个属性languages值为上面创建的JSONArray
            root.put("languages", array);
            Log.d("Json", root.toString());
            
        } catch (JSONException e) {
            e.printStackTrace();
        }

 

posted @ 2016-04-15 13:42  Ctony  阅读(140)  评论(0)    收藏  举报