Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.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 解析Json“;“无名”;数组数据_Java_Android_Json_Parsing - Fatal编程技术网

Java 解析Json“;“无名”;数组数据

Java 解析Json“;“无名”;数组数据,java,android,json,parsing,Java,Android,Json,Parsing,我得到了这个无名的json数组 [ { "symbol": "AAPL", "price": 207.1, "updated_at": "2019-04-23 16:26:09" }, { "symbol": "FB", "price": 183.12, "updated_at": "2019-04-23 16:26:09" } ] 但我的代码使用命名数组,如下所示: { "stocks": [ { "symbol": "AAPL", "price": 20

我得到了这个无名的json数组

[ { "symbol": "AAPL", "price": 207.1, "updated_at": "2019-04-23 16:26:09" }, { "symbol": "FB", "price": 183.12, "updated_at": "2019-04-23 16:26:09" } ]
但我的代码使用命名数组,如下所示:

{
  "stocks": [
    {
      "symbol": "AAPL",
      "price": 205.98,
      "updated_at": "2019-04-23 15:18:25"
    },
    {
      "symbol": "FB",
      "price": 182.99,
      "updated_at": "2019-04-23 15:18:25"
    }
  ]
}
我不知道如何解析一个无名数组。它只有在命名时才起作用,就像这样(我将json数据数组命名为stocks)

如何使其与无名数组一起工作? 我想使用第一个被注释掉的url

    private void jsonParse() {
       // String url = "https://financialmodelingprep.com/api/company/real-time-price/AAPL,FB,GOOG,RHT,NOK,INTC?datatype=json";
       String url = "https://api.myjson.com/bins/134wfc";
        JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        //I call the array stocks, but it doesn't have a name from the server, so it wont show.
                        try {
                            JSONArray jsonArray = response.getJSONArray("stocks");
                            for (int i = 0; i < jsonArray.length(); i++) {
                                JSONObject stock = jsonArray.getJSONObject(i);

                                String symBol = stock.getString("symbol");
                                int value = stock.getInt("price");

                                mTextViewResult.append(symBol + ", " + String.valueOf(value) + " $\n" );
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                error.printStackTrace();
            }
        });
        mQueue.add(request);
    }
}
private void jsonParse(){
//字符串url=”https://financialmodelingprep.com/api/company/real-time-price/AAPL,FB,GOOG,RHT,NOK,INTC?数据类型=json”;
字符串url=”https://api.myjson.com/bins/134wfc";
JsonObjectRequest=新的JsonObjectRequest(request.Method.GET,url,null,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
//我调用数组stocks,但它没有来自服务器的名称,因此它不会显示。
试一试{
JSONArray JSONArray=response.getJSONArray(“股票”);
for(int i=0;i
您可以直接请求JSONArray,如示例所示。这样说:

JsonArrayRequest req = new JsonArrayRequest(Request.Method.GET, url, null,,
                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
                            for (int i = 0; i < response.length(); i++) {

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

                                //do rest of the code

                            }

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

                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                });
JsonArrayRequest req=newjsonarrayrequest(Request.Method.GET,url,null,,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONArray响应){
Log.d(TAG,response.toString());
试一试{
//解析json数组响应
//循环遍历每个json对象
对于(int i=0;i
您可以使用.contains()方法来检查数组位置是否有唯一的值或要获取的键或字符串

看看这个例子

public void retrieve(final ListView gv, final ProgressBar myProgressBar) {
        final ArrayList<Teacher> teachers = new ArrayList<>();

        myProgressBar.setIndeterminate(true);
        myProgressBar.setVisibility(View.VISIBLE);
        StringRequest stringRequest = new StringRequest(Request.Method.GET, PHP_MYSQL_SITE_URL, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Teacher teacher;
                try {

                    JSONArray jsonArray = new JSONArray(response);

                    for (int i = 0; i < jsonArray.length(); i++) {

                        JSONObject jsonObject;
                        jsonObject = jsonArray.getJSONObject(i);

                        if (!jsonObject.getString("shopName").contains(strUserName)) {

                        } else {


                            String name = jsonObject.getString("productName");
                            String description = jsonObject.getString("description");
                            String price = "Ksh " + jsonObject.getString("sellingPrice");
                            String productStatus = jsonObject.getString("productStatus");
                            String imageURL = jsonObject.getString("imagePath");
                            String buyingPrice = jsonObject.getString("buyingPrice");
                            String category = jsonObject.getString("category");
                            String brandName = jsonObject.getString("brandName");
                            String ID = jsonObject.getString("ID");

                            teacher = new Teacher(name, description, price, productStatus, brandName, buyingPrice, category,ID, imgUrl + "/uploads/" + imageURL);
                            teachers.add(teacher);
                        }

                        //SET TO SPINNER
                        adapter = new GridViewAdapter(c, teachers);
                        gv.setAdapter(adapter);
                        myProgressBar.setVisibility(View.GONE);
                    }

                } catch (JSONException e) {

                    myProgressBar.setVisibility(View.GONE);
                    Toast.makeText(c, "GOOD RESPONSE BUT JAVA CAN'T PARSE JSON IT RECEIEVED. "+e.getMessage(), Toast.LENGTH_LONG).show();
                }

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                Toast.makeText(c, "UNSUCCESSFUL :  ERROR IS : "+volleyError.getMessage(), Toast.LENGTH_LONG).show();
            }
        });

        RequestQueue requestQueue = Volley.newRequestQueue(ItemsActivity.this);
        requestQueue.add(stringRequest);



    }
公共作废检索(最终列表视图gv,最终进度栏myProgressBar){
最终ArrayList教师=新ArrayList();
myProgressBar.SetUndeterminate(真);
myProgressBar.setVisibility(View.VISIBLE);
StringRequest StringRequest=newStringRequest(Request.Method.GET,PHP\u MYSQL\u SITE\u URL,new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
教师;
试一试{
JSONArray JSONArray=新JSONArray(响应);
for(int i=0;ipublic void retrieve(final ListView gv, final ProgressBar myProgressBar) {
        final ArrayList<Teacher> teachers = new ArrayList<>();

        myProgressBar.setIndeterminate(true);
        myProgressBar.setVisibility(View.VISIBLE);
        StringRequest stringRequest = new StringRequest(Request.Method.GET, PHP_MYSQL_SITE_URL, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Teacher teacher;
                try {

                    JSONArray jsonArray = new JSONArray(response);

                    for (int i = 0; i < jsonArray.length(); i++) {

                        JSONObject jsonObject;
                        jsonObject = jsonArray.getJSONObject(i);

                        if (!jsonObject.getString("shopName").contains(strUserName)) {

                        } else {


                            String name = jsonObject.getString("productName");
                            String description = jsonObject.getString("description");
                            String price = "Ksh " + jsonObject.getString("sellingPrice");
                            String productStatus = jsonObject.getString("productStatus");
                            String imageURL = jsonObject.getString("imagePath");
                            String buyingPrice = jsonObject.getString("buyingPrice");
                            String category = jsonObject.getString("category");
                            String brandName = jsonObject.getString("brandName");
                            String ID = jsonObject.getString("ID");

                            teacher = new Teacher(name, description, price, productStatus, brandName, buyingPrice, category,ID, imgUrl + "/uploads/" + imageURL);
                            teachers.add(teacher);
                        }

                        //SET TO SPINNER
                        adapter = new GridViewAdapter(c, teachers);
                        gv.setAdapter(adapter);
                        myProgressBar.setVisibility(View.GONE);
                    }

                } catch (JSONException e) {

                    myProgressBar.setVisibility(View.GONE);
                    Toast.makeText(c, "GOOD RESPONSE BUT JAVA CAN'T PARSE JSON IT RECEIEVED. "+e.getMessage(), Toast.LENGTH_LONG).show();
                }

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                Toast.makeText(c, "UNSUCCESSFUL :  ERROR IS : "+volleyError.getMessage(), Toast.LENGTH_LONG).show();
            }
        });

        RequestQueue requestQueue = Volley.newRequestQueue(ItemsActivity.this);
        requestQueue.add(stringRequest);



    }