Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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
Java Android截击JSON解析_Java_Android_Json_Android Volley - Fatal编程技术网

Java Android截击JSON解析

Java Android截击JSON解析,java,android,json,android-volley,Java,Android,Json,Android Volley,我试图从服务器获取数据并在ListView中显示它,但它在这里不起作用,我使用的是Volley库。我正在寻找截击代码,但我找不到,所以我可以得到与此对应的代码吗 JSONParse.java: import android.util.Log; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.StatusLine; import org.apache.htt

我试图从服务器获取数据并在ListView中显示它,但它在这里不起作用,我使用的是Volley库。我正在寻找截击代码,但我找不到,所以我可以得到与此对应的代码吗

JSONParse.java

import android.util.Log;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import java.io.BufferedReader;
import java.io.IOException;  
import java.io.InputStream;   
import java.io.InputStreamReader;
import org.apache.http.client.HttpClient;
import org.json.JSONException;

public class JSONParse {
    static InputStream iStream=null;
    static JSONArray jarray=null;
    static String json="";

    public JSONParse(){
    }

    public JSONArray getJSONFromUrl(String url){
        StringBuilder builder=new StringBuilder();
        HttpClient client=new DefaultHttpClient();

        //------------J.G-----------------
        /*HttpClient client=new DefaultHttpClient();
        HttpGet httpGet=new HttpGet(url);
        httpGet.setHeader("Content-Type", "application/json");
        httpGet.setHeader("jwttoken", "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJFUk0iLCJpc3MiOiJFUk0iLCJpYXQiOjE0MzM2OTczMjd9.2zd4OlKjW3Yfcd_q2FOoyEGpNrFbf7EuHeIkZ8ponr0");*/
        try {
            HttpGet httpGet=new HttpGet(url);
            httpGet.setHeader("Content-Type", "application/json");
            httpGet.setHeader("jwttoken",        "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJFUk0iLCJpc3MiOiJFUk0iLCJpYXQiOjE0MzM2OTczMjd9.2      zd4OlKjW3Yfcd_q2FOoyEGpNrFbf7EuHeIkZ8ponr0");

            HttpResponse response = client.execute(httpGet);
            StatusLine statusLine = response.getStatusLine();
            int statusCode = statusLine.getStatusCode();
            if (statusCode == 200) {
                HttpEntity entity = response.getEntity();
                InputStream content = entity.getContent();
                BufferedReader reader = new BufferedReader(new   InputStreamReader(content));
                String line;
                while ((line = reader.readLine()) != null) {
                    builder.append(line);
                }
            } else {
                Log.e("==>", "Failed to download file");
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            jarray= new JSONArray(builder.toString());
        } catch (JSONException e) {
            Log.e("JSON Parser", "Error parsing data"+ e.toString());
        }
        return jarray;
    }
}

按如下方式实现代码:

 public void getData(){

    //Showing a progress dialog
    final ProgressDialog loading = ProgressDialog.show(this,"Loading Data", "Please wait...",false,false);

    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
            (Request.Method.POST, url, null, new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {

                    loading.dismiss();
                    parseData(response);

                }
            },
                    new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {
                    // TODO Auto-generated method stub

                    Log.d("Json Error:",error.toString());

                }
            });


    //Creating request queue
    RequestQueue requestQueue = Volley.newRequestQueue(this);

    //Adding request to the queue
    requestQueue.add(jsonObjectRequest);
}

public void parseData(JSONObject object){

    try {

        JSONArray jsonArray=object.getJSONArray("worldpopulation");
        Log.d("Json Array:", jsonArray.toString());

        for (int i=0;i<jsonArray.length();i++){
            Data data=new Data();
            JSONObject obj;
            try {
                obj=jsonArray.getJSONObject(i);

                data.setImageUrl(obj.getString("flag"));
                data.setName(obj.getString("country"));
                data.setRank(obj.getString("rank"));
                data.setPopulation(obj.getString("population"));

                items.add(data);

            }
            catch (JSONException e){
                Log.d("Error in Parse Object:", e.toString());
            }
        }
    } catch (JSONException e) {
        Log.d("Error in parse Array:", e.toString());
    }
    mAdapter = new MyAdapter(items,this);
    mRecyclerView.setAdapter(mAdapter);
}
public void getData(){
//显示进度对话框
final ProgressDialog loading=ProgressDialog.show(这是“正在加载数据”,“请稍候…”,false,false);
JsonObjectRequest JsonObjectRequest=新JsonObjectRequest
(Request.Method.POST,url,null,new Response.Listener()){
@凌驾
公共void onResponse(JSONObject响应){
loading.dispose();
解析数据(响应);
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
//TODO自动生成的方法存根
Log.d(“Json错误:,Error.toString());
}
});
//创建请求队列
RequestQueue RequestQueue=Volley.newRequestQueue(this);
//将请求添加到队列
add(jsonObjectRequest);
}
公共空解析数据(JSONObject对象){
试一试{
JSONArray JSONArray=object.getJSONArray(“世界人口”);
d(“Json数组:”,jsonArray.toString());

对于(int i=0;i不确定这是否是您想要的:

下面是我如何使用截取来解析Json数据。 假设url代表以下Json数据:


[
{
“姓名”:“Ravi Tamada”,
“电子邮件”:ravi8x@gmail.com",
“电话”:{
“主页”:“08947 000000”,
“手机”:“9999999999”
}
},
{
“姓名”:“汤米”,
“电子邮件”:tommy@gmail.com",
“电话”:{
“主页”:“08946 000000”,
“移动”:“0000000000”
}
}
]

解析代码如下:

JsonArrayRequest req = new JsonArrayRequest(urlJsonArry,
        new Response.Listener<JSONArray>() {
            @Override
            public void onResponse(JSONArray response) {
                Log.d(TAG, response.toString());

                try {
                    // Parsing json array response
                    // loop through each json object
                    jsonResponse = "";
                    for (int i = 0; i < response.length(); i++) {

                        JSONObject person = (JSONObject) response
                                .get(i);

                        String name = person.getString("name");
                        String email = person.getString("email");
                        JSONObject phone = person
                                .getJSONObject("phone");
                        String home = phone.getString("home");
                        String mobile = phone.getString("mobile");

                        jsonResponse += "Name: " + name + "\n\n";
                        jsonResponse += "Email: " + email + "\n\n";
                        jsonResponse += "Home: " + home + "\n\n";
                        jsonResponse += "Mobile: " + mobile + "\n\n\n";

                    }

                    txtResponse.setText(jsonResponse);

                } catch (JSONException e) {
                    e.printStackTrace();
                    Toast.makeText(getApplicationContext(),
                            "Error: " + e.getMessage(),
                            Toast.LENGTH_LONG).show();
                }

                hidepDialog();
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d(TAG, "Error: " + error.getMessage());
                Toast.makeText(getApplicationContext(),
                        error.getMessage(), Toast.LENGTH_SHORT).show();
                hidepDialog();
            }
        });

// Adding request to request queue, please substitute here with your own queue
VolleyQueue.add(req);
JsonArrayRequest req=新的JsonArrayRequest(urlJsonArry,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONArray响应){
Log.d(TAG,response.toString());
试一试{
//解析json数组响应
//循环遍历每个json对象
jsonResponse=“”;
对于(int i=0;i

有关更多参考信息,请参见此。

不,您将无法获得代码,您需要自己尝试。