Android JSON数据的读取和创建

预先准备好的一段JSON数据

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

JSON数据的读取

        try {
            InputStreamReader isr=new InputStreamReader(getAssets().open("text.json"),"UTF-8");
            BufferedReader br=new BufferedReader(isr);
            String line;
            StringBuilder builder=new StringBuilder();
            while ((line=br.readLine())!=null) {
                builder.append(line);
            }
            br.close();
            isr.close();
            try {
                JSONObject root=new JSONObject(builder.toString());
                System.out.println("cat="+root.getString("cat"));
                JSONArray array=root.getJSONArray("languages");
                for (int i = 0; i < array.length(); i++) {
                    JSONObject lan=array.getJSONObject(i);
                    Log.i("id", lan.getInt("id")+"");
                    Log.i("id", lan.getString("name")+"");
                    Log.i("id", lan.getString("ide")+"");
                }
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

输出:

JSON数据的创建

try {
            JSONObject root=new JSONObject();
            root.put("cat", "it");
            JSONObject lan=new JSONObject();
            lan.put("id", 1);
            lan.put("ide", "eclipse");
            lan.put("name", "java");
            JSONObject lan1=new JSONObject();
            lan1.put("id", 2);
            lan1.put("ide", "XCode");
            lan1.put("name", "swift");
            JSONObject lan2=new JSONObject();
            lan2.put("id", 3);
            lan2.put("ide", "visual Studio");
            lan2.put("name", "C#");
            JSONArray array=new JSONArray();
            array.put(lan);
            array.put(lan1);
            array.put(lan2);
            root.put("languages", array);
            
            Log.i("JSON", root.toString()+"");
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

输出:

stareblankly.cn
原文地址:https://www.cnblogs.com/stareblankly/p/4972124.html