Android loopj AsyncHttpClient,解析JSON示例
我正在寻找一个使用loopj AsyncHttpClient解析JSON文件的简单示例。但到目前为止,我找不到任何有用的信息( 要解析的简单JSON文件:Android loopj AsyncHttpClient,解析JSON示例,android,json,parsing,http-get,loopj,Android,Json,Parsing,Http Get,Loopj,我正在寻找一个使用loopj AsyncHttpClient解析JSON文件的简单示例。但到目前为止,我找不到任何有用的信息( 要解析的简单JSON文件: { "contact": [ { "id": "10", "name": "Tom", "email": "tom@gmail.com" } } ] } 如有任何建议,
{
"contact": [
{
"id": "10",
"name": "Tom",
"email": "tom@gmail.com"
}
}
]
}
如有任何建议,我将不胜感激。
谢谢!!您需要先获取json。我想您已经这样做了
{ // json object node
"contact": [ //json array contact
{ // json object node
解析
JSONObject jb = new JSONObject("your json");
JSONArray con = jb.getJSONArray("contact");
JSONObject contact = (JSONObject) con.getJSONObject(0);
String id = contact.getString("id");
String name = contact.getString("name");
String id = contact.getString("id");
用这个
// JSON Node names
private static final String TAG_CONTACTS = "contacts";
private static final String TAG_ID = "id";
private static final String TAG_NAME = "name";
private static final String TAG_EMAIL = "email";
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
// Getting JSON Array node
contacts = jsonObj.getJSONArray(TAG_CONTACTS);
// looping through All Contacts
for (int i = 0; i < contacts.length(); i++) {
JSONObject c = contacts.getJSONObject(i);
String id = c.getString(TAG_ID);
String name = c.getString(TAG_NAME);
String email = c.getString(TAG_EMAIL);
// tmp hashmap for single contact
HashMap<String, String> contact = new HashMap<String, String>();
// adding each child node to HashMap key => value
contact.put(TAG_ID, id);
contact.put(TAG_NAME, name);
contact.put(TAG_EMAIL, email);
// adding contact to contact list
contactList.add(contact);
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Log.e("ServiceHandler", "Couldn't get any data from the url");
}
//JSON节点名称
专用静态最终字符串标记_CONTACTS=“CONTACTS”;
私有静态最终字符串标记\u ID=“ID”;
私有静态最终字符串标记_NAME=“NAME”;
私有静态最终字符串标记\u EMAIL=“EMAIL”;
if(jsonStr!=null){
试一试{
JSONObject jsonObj=新的JSONObject(jsonStr);
//获取JSON数组节点
contacts=jsonObj.getJSONArray(TAG_contacts);
//通过所有触点循环
对于(int i=0;ivalue
联系人。放置(标签号,ID);
联系人:put(标签名称、姓名);
联系方式:放置(标签、电子邮件、电子邮件);
//将联系人添加到联系人列表
联系人列表。添加(联系人);
}
}捕获(JSONException e){
e、 printStackTrace();
}
}否则{
Log.e(“ServiceHandler”,“无法从url获取任何数据”);
}
公共类MainActivity扩展活动{
私人对话;
专用静态字符串url=”http://highspecificationservers.com/apk/webservice.php";
私有静态最终字符串标记_STUDENT=“STUDENT”;
私有静态最终字符串标记_FNAME=“FNAME”;
私有静态最终字符串标记\u EMAIL=“EMAIL”;
私有静态最终字符串标记_MOBILE=“MOBILE”;
JSONArray student=null;
ArrayList学生名单;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
studentlist=newarraylist();
ListView lv=getListView();
lv.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//TODO自动生成的方法存根
字符串fname=((TextView)view.findViewById(R.id.fname))
.getText().toString();
字符串成本=((TextView)view.findViewById(R.id.email))
.getText().toString();
字符串描述=((TextView)view.findViewById(R.id.mobile))
.getText().toString();
Intent in=新的Intent(getApplicationContext(),
活动类);
in.putExtra(TAG_FNAME,FNAME);
in.putExtra(标签、电子邮件、成本);
in.putExtra(移动标签,说明);
星触觉(in);
}
});
新建GetStudent().execute();
}
私有类GetStudent扩展异步任务{
@凌驾
受保护的void onPreExecute(){
//TODO自动生成的方法存根
super.onPreExecute();
pdialog=新建进度对话框(MainActivity.this);
pdialog.setMessage(“请稍候”);
pdialog.setCancelable(假);
pdialog.show();
}
@凌驾
受保护的Void doInBackground(Void…arg0){
//TODO自动生成的方法存根
ServiceHandler sh=新的ServiceHandler();
字符串jString=sh.makeServiceCall(url,ServiceHandler.GET);
Log.d(“响应:”,“>”+jString);
if(jString!=null){
试一试{
JSONObject Jsonobj=新的JSONObject(jString);
student=Jsonobj.getJSONArray(TAG_student);
对于(int i=0;ipublic class MainActivity extends Activity {
private ProgressDialog pdialog;
private static String url = "http://highspecificationservers.com/apk/webservice.php";
private static final String TAG_STUDENT = "student";
private static final String TAG_FNAME = "fname";
private static final String TAG_EMAIL = "email";
private static final String TAG_MOBILE = "mobile";
JSONArray student = null;
ArrayList<HashMap<String, String>> studentlist;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
studentlist = new ArrayList<HashMap<String, String>>();
ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
String fname = ((TextView) view.findViewById(R.id.fname))
.getText().toString();
String cost = ((TextView) view.findViewById(R.id.email))
.getText().toString();
String description = ((TextView) view.findViewById(R.id.mobile))
.getText().toString();
Intent in = new Intent(getApplicationContext(),
SingleContactActivity.class);
in.putExtra(TAG_FNAME, fname);
in.putExtra(TAG_EMAIL, cost);
in.putExtra(TAG_MOBILE, description);
startActivity(in);
}
});
new GetStudent().execute();
}
private class GetStudent extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pdialog = new ProgressDialog(MainActivity.this);
pdialog.setMessage("please wait");
pdialog.setCancelable(false);
pdialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
// TODO Auto-generated method stub
ServiceHandler sh = new ServiceHandler();
String jString = sh.makeServiceCall(url, ServiceHandler.GET);
Log.d("Response:", "> " + jString);
if (jString != null) {
try {
JSONObject Jsonobj = new JSONObject(jString);
student = Jsonobj.getJSONArray(TAG_STUDENT);
for (int i = 0; i < student.length(); i++) {
JSONObject c = student.getJSONObject(i);
String fname = c.getString(TAG_FNAME);
String email = c.getString(TAG_EMAIL);
String mobile = c.getString(TAG_MOBILE);
HashMap<String, String> student = new HashMap<String, String>();
student.put(TAG_FNAME, fname);
student.put(TAG_EMAIL, email);
student.put(TAG_MOBILE, mobile);
studentlist.add(student);
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Log.e("ServiceHandler", "Couldn't get any data from the url");
}
return null;
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
if (pdialog.isShowing())
pdialog.dismiss();
ListAdapter adapter = new SimpleAdapter(MainActivity.this,
studentlist, R.layout.list_item, new String[] { TAG_FNAME,
TAG_EMAIL, TAG_MOBILE }, new int[] { R.id.fname,
R.id.email, R.id.mobile });
setListAdapter(adapter);
}
private void setListAdapter(ListAdapter adapter) {
// TODO Auto-generated method stub
}
}
private ListView getListView() {
// TODO Auto-generated method stub
return null;
}
}