Java Android:正在解析JSONObject的JSONArray,但仍然得到语法错误

Java Android:正在解析JSONObject的JSONArray,但仍然得到语法错误,java,android,Java,Android,我读过很多关于android解析json的文章,我不知道我错过了什么,因为我认为我做得对,但它一直在向我显示错误 这是我的JSON: { "categories": [ { "id": 1, "category_name": "Kiehn, Kohler and Russel", "created_at": "2018-08-29 05:35:50", "updated_at"

我读过很多关于android解析json的文章,我不知道我错过了什么,因为我认为我做得对,但它一直在向我显示错误

这是我的JSON:

{
    "categories": [
        {
            "id": 1,
            "category_name": "Kiehn, Kohler and Russel",
            "created_at": "2018-08-29 05:35:50",
            "updated_at": "2018-08-29 05:35:50"
        },
        {
            "id": 2,
            "category_name": "Flatley PLC",
            "created_at": "2018-08-29 05:35:50",
            "updated_at": "2018-08-29 05:35:50"
        }]
}
这是我的安卓手柄

try {
               ArrayList<TagModel> tagdata = new ArrayList<>();
               JSONObject object = new JSONObject(response);                   
               //Category
               ArrayList<CategoryModel> catedata = new ArrayList<>();
               JSONArray catearray = object.getJSONArray("categories");
               for (int i = 0; i < catearray.length(); i++) {
                  JSONObject product = catearray.getJSONObject(i);
                  CategoryModel recommend_model = new CategoryModel();
                  recommend_model.setCategoryName(product.getString("category_name"));
                  recommend_model.setCategoryId(String.valueOf(product.getInt("id")));
                  catedata.add(recommend_model);
               }                
            } catch (JSONException e) {
               e.printStackTrace();

            }
抱歉,如果它有点混乱,因为我想显示所有与错误相关的地方,谢谢

我刚刚在字符串json中发现了我的错误,下面是它的样子

因为@Andreas和@Sam Littlefair提到的是我的json contain”,“在字符串中,所以我清理了我的数据并输入了简单的数据,现在一切正常!谢谢你们两个

您确定这是发生错误时它试图解析的JSON文本吗?因为JSON看起来不错。尝试在stacktrace之前打印实际的JSON,然后测试输出,如Andreas所说的,确保响应变量是有效的JSON字符串。这可能是非转义引号的问题吗?@Andreas在你指出之后,我刚刚阅读了我的Json,在我的Json和**之间有一个小错误,在**的74646字符处显示**W/System.err:org.Json.JSONException:Unterminated object,在这个错误之后显示我的json@SamLittlefair我已经更新了错误的第二张照片,将整个JSON复制到一个在线验证器中,看看它说了什么。如果没有问题,您可能需要避开所有的双引号,将
替换为
\”
。不用担心,很高兴您已排序!
 catch (JSONException e) {
               e.printStackTrace();
            }