[记录]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(); }

浙公网安备 33010602011771号