2017-02-17 6 views
-1

Я извлекаю данные json из api с помощью retrofit. Но когда я запускаю приложение, он показывает ошибку com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 2 column 1 path $ .Я не знаю Будет problem.Here мой JSON данные:

{"status":true,"message":"Notifications fetched.","data": 
[{"id":"69","type":"liked","text":"Sandip Ghosh liked your photo.","for_userid":"56","from_userid":"55","for_image":"54","seen":"0", 
"username":"sandip","firstname":"Sandip","lastname":"Ghosh","imgname":""}, 
{"id":"64","type":"liked","text":"Sandip Ghosh liked your 
photo.","for_userid":"56","from_userid":"55","for_image":"54","seen":"0","userna 
me":"sandip","firstname":"Sandip","lastname":"Ghosh","imgname":""}]} 

и мой класс интерфейса:

public static final String BASE_URL = "http://chikoop.com/api/index.php/"; 
    private static Retrofit retrofit = null; 

    static Gson gson = new GsonBuilder() 
      .setLenient() 
      .create(); 
    public static Retrofit getClient() { 
     if (retrofit==null) { 
      retrofit = new Retrofit.Builder() 
        .baseUrl(BASE_URL) 
        .addConverterFactory(GsonConverterFactory.create(gson)) 
        .build(); 
     } 
     return retrofit; 
    } 

ответ

0

Он похож есть так я выдаю ваши данные json. Несколько новых строковых символов были помещены между данными, которые вызывают проблему. Для ex один новый символ линии присутствует в "text":"Sandip Ghosh liked your photo." после вашего. Ниже приведен правильный json. Вы можете проверить действительность JSON here.

{ 
"status": true, 
"message": "Notifications fetched.", 
"data": [{ 
    "id": "69", 
    "type": "liked", 
    "text": "Sandip Ghosh liked your photo.", 
    "for_userid": "56", 
    "from_userid": "55", 
    "for_image": "54", 
    "seen": "0", 
    "username": "sandip", 
    "firstname": "Sandip", 
    "lastname": "Ghosh", 
    "imgname": "" 
}, { 
    "id": "64", 
    "type": "liked", 
    "text": "Sandip Ghosh liked your photo.", 
    "for_userid": "56", 
    "from_userid": "55", 
    "for_image": "54", 
    "seen": "0", 
    "username": "sandip", 
    "firstname": "Sandip", 
    "lastname": "Ghosh", 
    "imgname": "" 
}] 
} 
+0

Нет, это то же самое, оно создано мной. Я имею в виду данные json, которые вы представляете, это то же самое, что и у меня. –

+0

действительно то же самое по данным, но это неверно. Вы можете проверить оба json здесь http://jsonlint.com/ или http://www.jsoneditoronline.org/. Вы узнаете, что такое ошибка. – Sanjeet

+0

нет, правильно, другой, кто работает над одним и тем же проектом, извлекает одни и те же данные json. –

0

Проблема заключается в API, попробуйте изменить свой ответ. Я попытался с помощью Gson и переоснащения и для меня это не удалось эффектно Или вы можете попробовать использовать

Okhttp клиента = новый okhttp() дооснащения = новый retrofit.builder(). BaseUrl (ваш URL) . Setclient (клиент) .addconverterFactory (GsonConverterFactory.create (gson)). Build

+0

srry, но синтаксис неправильный, можно написать более понятным. –

 Смежные вопросы

  • Нет связанных вопросов^_^