Android Json解析
2016-02-16 14:48
615 查看
package com.example.json; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.content.res.AssetManager; import android.test.AndroidTestCase; import android.util.Log; public class MyTest extends AndroidTestCase { public void testJson() { String s = "{\"name\":\"Android���\"}"; try { JSONObject mJsonObject = new JSONObject(s); String bookName = mJsonObject.getString("name"); Log.d("tag", "bookName :" + bookName); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void testJsonBook() { String s = "{\"book\":{\"id\":100,\"name\":\"Android���\"}}"; try { JSONObject mJSONObject = new JSONObject(s); JSONObject JSONObjcet1 = mJSONObject.getJSONObject("book"); int bookId = JSONObjcet1.getInt("id"); String bookName = JSONObjcet1.getString("name"); Log.d("tag", "bookName :" + bookName + ", bookId :" + bookId); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void testJsonArray() { String s = "[{\"book\":{\"id\":100,\"name\":\"Android���\"}},{\"book\":{\"id\":101,\"name\":\"Java���\"}}]"; try { JSONArray mJSONArray = new JSONArray(s); int length = mJSONArray.length(); for(int i=0;i<length;i++){ JSONObject mJSONObject = mJSONArray.getJSONObject(i); JSONObject jsonBook = mJSONObject.getJSONObject("book"); int bookId = jsonBook.getInt("id"); String bookName = jsonBook.getString("name"); Log.d("testJsonArray", "bookName:"+bookName+",bookId:"+bookId); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void testJsonObjectBooks() throws JSONException { AssetManager mAssetManager = getContext().getAssets(); InputStream in = null; try { in = mAssetManager.open("json"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } String s = getStringFromInputStream(in); JSONObject mJSONObject = null; try { mJSONObject = new JSONObject(s); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } JSONArray mJSONArray = mJSONObject.getJSONArray("books"); int length = mJSONArray.length(); for(int i=0;i<length;i++){ JSONObject mJSONObject1 = mJSONArray.getJSONObject(i); JSONObject jsonBook = mJSONObject1.getJSONObject("book"); String bookName = jsonBook.getString("name"); int bookId = jsonBook.getInt("id"); Log.e("testJsonObjectBooks", "bookName :" + bookName + ", bookId :" + bookId); } } public String getStringFromInputStream(InputStream in){ BufferedReader br = new BufferedReader(new InputStreamReader(in)); //StringBuilder 线程不安全 通常用在单线程中 StringBuilder stringBuilder = new StringBuilder(); String line = ""; try { while((line = br.readLine()) !=null ){ stringBuilder.append(line); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return stringBuilder.toString(); } }
相关文章推荐
- Android HAL实例解析
- Android 系统上一款开源的图表库
- AndroidAsync :基于nio的异步通信库
- Android日常开发60条经验
- Android ListView GridView 错位
- android findviewbyId 简化写法
- Android后台任务队列类库
- Android 自定义控件打造史上最简单的侧滑菜单02
- Android中的图像处理
- Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
- android 自定义控件 使用declare-styleable进行配置属性(源码角度)
- android 性能优化
- Android 数据持久化(SQLite数据存储)
- Android中如何禁用其他应用,并且不在桌面显示
- Android studio插件GsonFormat,返回json快速创建实体对象
- Android Annotation基础教程
- android5.1后新增shadow$_monitor_和shadow$_klass_ ,导致反射无效
- Android studio无法发现nexus 5x解决方法
- android布局之线性布局LinearLayout(总结)
- Android开发的那些坑和小技巧