http://blog.youkuaiyun.com/aomandeshangxiao/article/details/7000077
假设有如下数据需要解析:
private String strJson =
"{" +
" \"phone\" : [\"12345678\", \"87654321\"]," +
" \"name\" : \"lau\"," +
" \"age\" : 100," +
" \"address\" : { \"country\" : \"china\", \"province\" : \"jiangsu\" }," +
" \"married\" : false" +
"}";
实现代码如下:
package com.lau.jsonparse;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONTokener;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class JsonParseDemoActivity extends Activity {
private String strJson =
"{" +
" \"phone\" : [\"12345678\", \"87654321\"]," +
" \"name\" : \"yuanzhifei89\"," +
" \"age\" : 100," +
" \"address\" : { \"country\" : \"china\", \"province\" : \"jiangsu\" }," +
" \"married\" : false" +
"}";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
JSONTokener jsonTokener = new JSONTokener(strJson);
JSONObject jsonObject = (JSONObject) jsonTokener.nextValue();
JSONArray jsonArray = jsonObject.getJSONArray("phone");
for(int i=0; i<jsonArray.length(); i++) {
Log.d("DEBUG", "" + jsonArray.getString(i));
}
Log.d("DEBUG", jsonObject.getString("name"));
Log.d("DEBUG", "" + jsonObject.getInt("age"));
JSONObject object = jsonObject.getJSONObject("address");
Log.d("DEBUG", object.getString("country"));
Log.d("DEBUG", object.getString("province"));
Log.d("DEBUG", "" + jsonObject.getBoolean("married"));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
输出结果如下:
08-05 07:36:12.010: D/DEBUG(607): 12345678
08-05 07:36:12.010: D/DEBUG(607): 87654321
08-05 07:36:12.020: D/DEBUG(607): lau
08-05 07:36:12.020: D/DEBUG(607): 100
08-05 07:36:12.020: D/DEBUG(607): china
08-05 07:36:12.020: D/DEBUG(607): jiangsu
08-05 07:36:12.020: D/DEBUG(607): false