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