Java 应为BEGIN_数组,但使用改装&;在第1行第1列路径处为字符串;格森

Java 应为BEGIN_数组,但使用改装&;在第1行第1列路径处为字符串;格森,java,android,gson,retrofit,Java,Android,Gson,Retrofit,这是我的服务界面: @POST("/serachtracks") Call<List<Track>> searchTracks(@Header("Authentification") String accessToken, @Query("tag") String tag); 我从服务器接收的JSON: [{"track_id":9833,"track_title":"A some title","track_tags":"#tags"}, {...}, {...}]

这是我的服务界面:

@POST("/serachtracks")
Call<List<Track>> searchTracks(@Header("Authentification") String accessToken, @Query("tag") String tag);
我从服务器接收的JSON:

[{"track_id":9833,"track_title":"A some title","track_tags":"#tags"}, {...}, {...}]
但我得到了这个错误:

 com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 1 path $
                                                             at com.google.gson.Gson.fromJson(Gson.java:873)
                                                             at com.google.gson.Gson.fromJson(Gson.java:826)
请帮忙!
谢谢

问题出在我的服务器的响应中:

echo json_encode($array);

这不是一个好办法。

问题出在我的服务器的响应中:

echo json_encode($array);

这不是一个好方法。

您看到了吗?但是我从soundcloud获得了相同的JSON数据,并且可以正常工作:可能是我的服务器出现了问题。我的服务器响应如下:
code$res=array();对于($i=0;$i<4;$i++){$tracks=array('track_id'=>1,'track_title'=>'ABC','track_tags'=>'tgs');array_push($res,$tracks);}头('Content-Type:application/json;');echo json_编码($res)
您看到了吗,但我从soundcloud获得了相同的JSON数据,它可以正常工作:可能是我的服务器出现了问题。我的服务器响应如下:
code$res=array();对于($i=0;$i<4;$i++){$tracks=array('track_id'=>1,'track_title'=>'ABC','track_tags'=>'tgs');array_push($res,$tracks);}头('Content-Type:application/json;');echo json_编码($res)