Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android loopj AsyncHttpClient,解析JSON示例_Android_Json_Parsing_Http Get_Loopj - Fatal编程技术网

Android loopj AsyncHttpClient,解析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" } } ] } 如有任何建议,

我正在寻找一个使用loopj AsyncHttpClient解析JSON文件的简单示例。但到目前为止,我找不到任何有用的信息(

要解析的简单JSON文件:

{
    "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;
    }

}