Android(安卓)Json解析
16lz
2021-01-25
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 blocke.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 blocke.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 blocke.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 blocke.printStackTrace();}String s = getStringFromInputStream(in);JSONObject mJSONObject = null;try {mJSONObject = new JSONObject(s);} catch (JSONException e) {// TODO Auto-generated catch blocke.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 blocke.printStackTrace();}return stringBuilder.toString();}}
更多相关文章
- contentProvider不是线程安全的
- Android线程间通信
- 阿里、腾讯、百度、网易、美团Android面试经验分享,拿到了百度、
- 2020年GitHub标星2.9K的Android基础——高级面试题合集!(金九银十
- android杀不死的Service
- android开发之widget控件突然停止更新的原因
- Android开发规范之编码规范
- 2018-6月Android试题整理
- Android(安卓)Configuration change引发的问题及解决方法