com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_OBJECT,但位于第1行第2列路径$

时间:2019-11-14 10:35:26

标签: android json retrofit2

当我使用改型将json数组发布到服务器时遇到此错误。我的json有效,因为我通过在线工具对其进行了检查
这是我发布的json

[
  {
  "image":"/9j/4AAQ//Z",
  "pole_code":"Adv234",
  "latitude":28.62628851,
  "longitude":77.37868293,
  "vendor_name":"1"
  }
]


这是发布相同

的方法
@POST("SyncPole")
Call<SyncApiResponse>uploadSurveyData(@Body JsonArray array);


制作JsonArray的代码

private JsonArray createJsonArray(List<PoleSurveyData> list){
    JsonArray jsonArray = new JsonArray();
    if (list != null) {
        for (int i = 0; i < list.size(); i++) {
            JsonObject jsonObject = new JsonObject();
            try {
                String imgString = Base64.encodeToString(list.get(i).getImage(),
                        Base64.NO_WRAP);
                jsonObject.addProperty("image", imgString);
                jsonObject.addProperty("pole_code", list.get(i).getPoleCode());
                jsonObject.addProperty("latitude", list.get(i).getLatitude());
                jsonObject.addProperty("longitude", list.get(i).getLongitude());
                jsonObject.addProperty("vendor_name","1");

                jsonArray.add(jsonObject);

                ;

            }catch (Exception e){
                e.printStackTrace();
            }

        }
}
return jsonArray;
}


我关注了这些链接"Expected BEGIN_OBJECT but was STRING at line 1 column 1",但它们都没有起作用
邮递员请求的屏幕截图
enter image description here 有人可以帮我解决我做错的地方

1 个答案:

答案 0 :(得分:1)

"success"

您在String中得到Response,但是期望object中的SyncApiResponse。这就是问题

解决方案:您必须更改响应格式。像下面的结构。

{
 "status": "success",
 "message": "demo message"
}