Android json数据的解析
2016-05-03 16:09
447 查看
json格式,JavaScript Object Notation的缩写。 和xml一样,是一种描述性语言。
基本根式如下:
名称:数值
Android对于json格式数据的解析:
基本根式如下:
名称:数值
{"languages":[ {"id":1,"ide":"eclipse","name":"java"}, {"id":2,"ide":"xcode","name":"swift"}, {"id":3,"ide":"visual studio","name":"c#"} ], "cat":"it" }
Android对于json格式数据的解析:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 解析 json 格式数据 try { InputStream is = getResources().getAssets().open("test.json"); InputStreamReader isr = new InputStreamReader(is, "utf-8"); BufferedReader br = new BufferedReader(isr); String string; StringBuilder builder = new StringBuilder(); while ((string = br.readLine()) != null) { builder.append(string); } br.close(); isr.close(); JSONObject root = new JSONObject(builder.toString()); System.out.println(root.getString("cat")); JSONArray array = root.getJSONArray("languages"); for (int i = 0; i < array.length(); i++) { JSONObject lan = array.getJSONObject(i); System.out.println("..........."); System.out.println(lan.getInt("id")); System.out.println(lan.getString("ide")); System.out.println(lan.getString("name")); } } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 生成json数据 try { JSONObject root2 = new JSONObject(); root2.put("cat", "it"); JSONObject lan1 = new JSONObject(); lan1.put("id", 1); lan1.put("ide", "eclipse"); lan1.put("name", "java"); JSONObject lan2 = new JSONObject(); lan2.put("id", 2); lan2.put("ide", "xcode"); lan2.put("name", "swift"); JSONObject lan3 = new JSONObject(); lan3.put("id", 3); lan3.put("ide", "visual studio"); lan3.put("name", "c#"); JSONArray array = new JSONArray(); array.put(lan1); array.put(lan2); array.put(lan3); root2.put("languages", array); System.out.println(root2); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关文章推荐
- Android 浅谈一个全适配方案
- Android--FragmentTabHost+Fragment
- android--------关于创建模拟器不能移动的问题
- AndroidStudiod如何打包aar文件包和引用小记
- android圆形头像:相机相册加载图片到圆形头像
- android zxing 扫描二维码 横屏转竖屏
- Android Studio 改变 SDK 的源码路径
- 使用新的 Android Studio 加速你的开发
- android stutio创建项目以及运行时遇到的问题总结
- Android 图片获取及上传
- Fiddler捕获 iPhone/Android 流量
- android操作xml
- Android与网页交互
- android技术要点梳理
- [置顶] Android开发之 SwipeRefreshLayout
- Android Studio 添加ndk右键工具
- android--------关于ActionBar的Overflow问题
- Android dialog 点击空白dialog不消失问题
- android学习,在项目上显示当前时间
- Android中invalidate()和postInvalidate() 的区别及使用方法