【问题标题】:Getting Unterminated object exception for JSON array获取 JSON 数组的未终止对象异常
【发布时间】:2016-11-28 10:26:47
【问题描述】:

我正在从服务器获取 JSON 数组。但我正在尝试访问它,我得到了未终止的对象异常。

我检查了输出中是否有任何逗号遗漏或语法错误,但仍然无法正常工作。

JSON 数组

    [
  {
    "cust_id": "8",
    "mer_id": "3",
    "fav": "1",
    "cont_name": "sandeep",
    "kirana_name": "kasar",
    "phone_no": "9422879610",
    "email_id": "kasar1@gmail.com",
    "address": "nashik"
  },
  {
    "cust_id": "8",
    "mer_id": "1",
    "fav": "1",
    "cont_name": "sandeep",
    "kirana_name": "general store",
    "phone_no": "1212345623",
    "email_id": "kasar@gmail.com",
    "address": "nashik road nashik"
  },
  {
    "cust_id": "8",
    "mer_id": "5",
    "fav": "0",
    "cont_name": "a",
    "kirana_name": "s",
    "phone_no": "9422879610",
    "email_id": "sam@gmail.com",
    "address": "aa"
  },
  {
    "cust_id": "8",
    "mer_id": "6",
    "fav": "0",
    "cont_name": "see ya",
    "kirana_name": "see ya kirana",
    "phone_no": "8698766460",
    "email_id": "deepmalasingh55@gmail.com",
    "address": "dee"
  },
  {
    "cust_id": "8",
    "mer_id": "5",
    "fav": "0",
    "cont_name": "a",
    "kirana_name": "s",
    "phone_no": "9422879610",
    "email_id": "sam@gmail.com",
    "address": "aa"
  },
  {
    "cust_id": "8",
    "mer_id": "9",
    "fav": "0",
    "cont_name": "fre",
    "kirana_name": "fee kirana",
    "phone_no": "8698766460",
    "email_id": "deepmalasinghop@gmail.com",
    "address": "plotno:12,sahaydri nagar"
  }
]

从数组中检索数据:

 @Override
    protected void onPostExecute(JSONObject response) {
        super.onPostExecute(response);
        progressDialog.dismiss();
        try {
            merchantsList.clear();
            JSONArray jsonArray = response.getJSONArray("array");
            if(jsonArray.length() > 0) {
                for (int i = 0; i < jsonArray.length(); i++) {
                    JSONObject jsonObject = jsonArray.getJSONObject(i);
                    if (jsonObject.has("message")) {
                        String message = jsonObject.getString("message");
                        Snackbar snackbar = Snackbar.make(coordinatorLayout, message, Snackbar.LENGTH_LONG);
                        snackbar.show();
                    } else {
                        long id,merchant_id,item_quantity;
                        String kirana_name,created_at,address;
                        int fav;

                         merchant_id=jsonObject.getLong("mer_id");
                        kirana_name=jsonObject.getString("kirana_name");

                        fav=jsonObject.getInt("fav");
                        address=jsonObject.getString("address");


                        Merchants merchants = new Merchants(merchant_id,kirana_name,address,fav);
                        merchantsList.add(merchants);
                        merchantsAdapter.notifyDataSetChanged();

                    }
                }

            }

例外:

    org.json.JSONException: Unterminated object at character 973 of {"array":[{"cust_id":"8","mer_id":"3","fav":"1","cont_name":"sandeep","kirana_name":"kasar","phone_no":"9422879610","email_id":"kasar1@gmail.com","address":"nashik"},{"cust_id":"8","mer_id":"1","fav":"1","cont_name":"sandeep","kirana_name":"general store","phone_no":"1212345623","email_id":"kasar@gmail.com","address":"nashik road nashik"},{"cust_id":"8","mer_id":"5","fav":"0","cont_name":"a","kirana_name":"s","phone_no":"9422879610","email_id":"sam@gmail.com","address":"aa"},{"cust_id":"8","mer_id":"6","fav":"0","cont_name":"see ya","kirana_name":"see ya kirana","phone_no":"8698766460","email_id":"deepmalasingh55@gmail.com","address":"dee"},{"cust_id":"8","mer_id":"5","fav":"0","cont_name":"a","kirana_name":"s","phone_no":"9422879610","email_id":"sam@gmail.com","address":"aa"},{"cust_id":"8","mer_id":"9","fav":"0","cont_name":"fre","kirana_name":"fee kirana","phone_no":"8698766460","email_id":"deepmalasinghop@gmail.com","address":"plotno:12,sahaydri nagar"}]895da9a9a4cdd0825848479ee7e6c7ed2}
11-28 10:23:52.302 27004-27069/com.kiranaapp W/System.err:     at org.json.JSONTokener.syntaxError(JSONTokener.java:450)

怎么了??任何帮助都会很棒..比你..

【问题讨论】:

  • 出了什么问题? 你的 json 错了……不,它和你在问题中写的不是同一个 json
  • @Sid 您在代码中发布的 Json 与 Logcat 中的 json 完全不同,所以 json is invalid

标签: php android arrays json jsonexception


【解决方案1】:

是的,这是因为您的 Json 数组末尾包含无效字符串。 这是字符串。 895da9a9a4cdd0825848479ee7e6c7ed2 删除它,然后重试。

编辑

您可以自行检查。转到此站点Json Parser,然后将您的 Json 数组粘贴到那里。然后你会注意到一个错误。

【讨论】:

    【解决方案2】:

    在您使用的 JSON 中没有像 "array" 这样的元素。 JSON 应该为每个值都有一些键。

    JSONArray jsonArray = response.getJSONArray("array");
    

    在这种情况下,您的 JSON 数组应该有 "array"=[]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-02
      • 1970-01-01
      • 1970-01-01
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多