我应该如何使用截击从 android 中的 sourceJson 获取数据?

How should i get the data from sourceJson in android using volley?

下面是我得到的响应我想从“SourceJson”获取数据我无法理解为什么我在源中得到“”json请帮助我

{
    "incomingOrder": [
        {
            "Namw": 8510,
            "Surname": "00",
            "mob": "00",
            "phone": "000",
            "SourceJson": "{\"cart_gst\":30.21,\"instructions\":\"\",\"order_packing_charges\":30,\"cart_igst_percent\":0,\"cart_sgst\":15.1038,}",
            "test": "NotSynced",
            "test": "DPA",
}]}

试试这个代码:

requestQueue = Volley.newRequestQueue(this);
        JsonObjectRequest obreq = new JsonObjectRequest(Request.Method.GET, JsonURL,
                // The third parameter Listener overrides the method onResponse() and passes
                //JSONObject as a parameter
                new Response.Listener<JSONObject>() {

                    // Takes the response from the JSON request
                    @Override
                    public void onResponse(JSONObject response) {
                        try {
                            JSONArray jsonArray = response.getJSONArray("incomingOrder");

                            JSONObject jsonObject = jsonArray.getJSONObject(0);

                            JSONObject objSourceJson=jsonObject.getJSONObject("SourceJson");

                            Log.i("IvaSourceJson",objSourceJson.toString());

                            String cart_gst=objSourceJson.getString("cart_gst");
                            String instructions=objSourceJson.getString("instructions");
                        }
                        // Try and catch are included to handle any errors due to JSON
                        catch (JSONException e) {
                            // If an error occurs, this prints the error to the log
                            e.printStackTrace();
                        }
                    }
                },
                // The final parameter overrides the method onErrorResponse() and passes VolleyError
                //as a parameter
                new Response.ErrorListener() {
                    @Override
                    // Handles errors that occur due to Volley
                    public void onErrorResponse(VolleyError error) {
                        Log.e("Volley", "Error");
                    }
                }
        );
        // Adds the JSON object request "obreq" to the request queue
        requestQueue.add(obreq);

由于JSONArray数据是列表类型,最好不要使用jsonArray.getJSONObject(0);
使用此代码可获得多个结果,

StringRequest request = new StringRequest(Request.Method.GET, "", new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.d("Response", response);
            try {
                JSONObject object = new JSONObject(response);

                JSONArray array = object.getJSONArray("incomingOrder");
                for (int i = 0; i < array.length(); i++){
                    JSONObject object1 = array.getJSONObject(i);
                    String name = object1.getString("Namw");
                    String surname = object1.getString("Surname");
                    String mob = object1.getString("mob");
                    String phone = object1.getString("phone");
                    String sourceJson = object1.getString("SourceJson");
                    String test = object1.getString("test");
                    String test1 = object1.getString("test");
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d("Error", error.getMessage());
        }
    });
    Context context;
    RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
    queue.add(request);  

在任何方法中对此进行编码,并在需要操作的地方调用该方法。