php - 如何获取json android中返回的多行并将其传递给sqlite

标签 php android mysql json sqlite

我正在尝试通过 JSON 将下面提到的 php json 结果的输出输出到我的 android 应用程序中,但我只在我的 android 应用程序 sqlite 中获得第一个条目作为获取的结果,其中可能是 php json_encode 返回的所有行.我想请求有关如何获取所有行并将其传递给 sqlite 的帮助。

{"error":false,"user":{"id":1,"sutdentId":1,"user_id":"1","full_name":"Mugisha John","school":"APAPER I","level":"Level 2","year":18}}{"error":false,"user":{"id":2,"sutdentId":2,"user_id": "1","full_name":"Marie Ange Karamuzi","school":"Gs.st Joseph de Gitarama","level":"Sinior 6","year":20}}{"error":false, "user":{"id":3,"sutdentId":3,"user_id":"1","full_name":"Niragire Sangano Charles","school":"Gs.shyogwe","level":"高中 4","year":20}}

我只在第一行进入我的 android 应用程序 sqlite:

{"id":1,"sutdentId":1,"user_id":"1","full_name":"Mugisha John","school":"APAPER I","level":"Level 2","year":18}

我用来在 android 中获得上述结果的主要 activity.java 方法:

private void GetStudentDetail(final String mobile) {
    // Tag used to cancel the request
    String tag_string_req = "req_Verfication";
    progressBarList.setVisibility(View.VISIBLE);
    //        myList.setVisibility(View.GONE);
    StringRequest strReq = new StringRequest(Request.Method.POST,
            Config.FETCH_StudentsOfParent_URL, new Response.Listener<String>
    () {
        @Override
        public void onResponse(String response) {
            Log.d(TAG, "cerfication Response: " + response.toString());
            // Parsing json
            for (int i = 0; i < response.length(); i++) {
                try {
                    JSONObject jObj = new JSONObject(response);
                        boolean error = jObj.getBoolean("error");
                        // Check for error node in json
                        if (!error) {
                            // user successfully exist in database
                            JSONObject user = jObj.getJSONObject("user");
                            String id = user.getString("id");
                            String sutdentId = user.getString("sutdentId");
                            String full_name = user.getString("full_name");
                            String year = user.getString("year");
                            String school = user.getString("school");
                            String level = user.getString("level");
                               // pass id ,sutdentId, fullname ,year ,school and level 
to sqlite
                            db.addUser(id, sutdentId, full_name, year,  school, level);

                            progressBarList.setVisibility(View.GONE);
                            myList.setVisibility(View.VISIBLE);
                            }
                          else{
                          // Error in login. Get the error message
                      // hiding the progress bar
                        progressBarList.setVisibility(View.GONE);
                        myList.setVisibility(View.VISIBLE);

                        String errorMsg = jObj.getString("error_msg");
                        Toast.makeText(getActivity(), errorMsg, 
      Toast.LENGTH_LONG).show();
                       }

                  } catch (JSONException e) {
                    // JSON error
                    e.printStackTrace();
                        Toast.makeText(getActivity(), "Json error: " + 
              e.getMessage(), Toast.LENGTH_LONG).show();                         
                   }
                 }
              }
        }, new Response.ErrorListener() {
            @Override
             public void onErrorResponse(VolleyError error) {
            Log.e(TAG, "Verfication error Error: " + error.getMessage());
            Toast.makeText(getActivity(),
                      "response error", Toast.LENGTH_LONG).show();
  //                Toast.makeText(getApplicationContext(),
//                        error.getMessage(), Toast.LENGTH_LONG).show();
                 // hiding the progress bar
                progressBarList.setVisibility(View.GONE);
                 myList.setVisibility(View.VISIBLE);
           }
         }) {
          @Override
            protected Map<String, String> getParams() {
              // Posting parameters to verfication url
            Map<String, String> params = new HashMap<String, String>();
            params.put("mobile", mobile);
            return params;
          }
         };
   //        // Adding request to request queue
      MyApplication.getInstance().addToRequestQueue(strReq,tag_string_req);
  }

最佳答案

您需要将您的 JSON 数据包装在一个数组中,然后在 Android 中使用 JSONArray 来解析它

[{"error":false,"user":{"id":1,"sutdentId":1,"user_id":"1","full_name":"Mugisha John","school":"APAPER I","level":"Level 2","year":18}}{"error":false,"user":{"id":2,"sutdentId":2,"user_id":"1","full_name":"Marie Ange Karamuzi","school":"Gs.st Joseph de Gitarama","level":"Sinior 6","year":20}}{"error":false,"user":{"id":3,"sutdentId":3,"user_id":"1","full_name":"Niragire Sangano Charles","school":"Gs. shyogwe","level":"Sinior 4","year":20}}]

关于php - 如何获取json android中返回的多行并将其传递给sqlite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45028743/

相关文章:

php - Behat/mink/laravel 中缺少扩展名

android - 当我的 Android 设备不平时,我应该如何计算方位角、俯仰角和方向?

android.database.sqlite.SQLiteException : no such table

php - 第 2 行第 1 列错误 : Document is empty on php

php - 为什么在 CONCAT 之后 MySQL 中的变量不相等?

php - 在 TYPO3 中通过 SSL 传送静态资源

php - 它是安全的 SSL 数据传输吗?或不?

android - 如何依赖另一个 Gradle 模块中的特定类或包?

php - 尝试从 toran 获取所需的私有(private)库时 Composer 警告

android - 如何制作兼容RecyclerView的Android自定义 View