2015-05-20 5 views
0

Я использую Gson, чтобы преобразовать свой отклик на его модель. Когда я копирую содержимое json и вставляю его в String вручную, он работает отлично.Gson malformed json

Как

String result = "..."; 

Когда я прохожу ответ непосредственно Gson, то я получаю следующее исключение:

вызвано следующими причинами: com.google.gson.stream.MalformedJsonException: незавершенная строка в строка 1 колонка 501 путь $ .contact.picture.links [0] .href

Это мой JSON: json requested file

JSON:

{ "ID": 22798, "created_at": "2015-05-19T19: 31: 56 + 02: 00",
"updated_at": «2015-05 -21T00: 03: 15 + 02: 00 "," title ":" Название Благотворительность "," описание ":" "," tax_deductible ": true,
" donations_prohibited ": false," closed_at ": null," donor_count ": 0," donated_amount_in_cents ": 0," requested_amount_in_cents ": 50000," progress_percentage ": null," contact ": { " name ":" R. Kocyigit " "картинка": { "ссылки": [ { "отн": "fill_100x100", "HREF": "https://asset1.betterplace.org/uploads/user/profile_picture/000/448/689/fill_100x100_xing-profile-photo.jpg" }, { "отн": "оригинал", " HREF ":" https://asset1.betterplace.org/uploads/user/profile_picture/000/448/689/crop_original_xing-profile-photo.jpg " } ] },

Мой код:

Gson gson = new Gson(); 
Model model = gson.fromJson(response, Model.class); 
+0

В этом файле содержится точная строка, которую вы подаете в Gson? (Вы распечатали его, чтобы проверить?) – immibis

+0

Нет, но если есть специальные символы, что я могу сделать? Я не могу отредактировать json на сервере. –

+0

Пожалуйста, дайте нам полный, минимальный и воспроизводимый пример. Что-то короткое. –

ответ

0

Я решил проблему он. был во время преобразования потока по сети в строку.

Когда я использую BufferedReader для преобразования в строку, то Gson работает хорошо.

BufferedReader reader = null; 
try { 
    reader = new BufferedReader(new InputStreamReader(stream)); 
    StringBuffer buffer = new StringBuffer(); 
    int read; 
    char[] chars = new char[1024]; 
    while ((read = reader.read(chars)) != -1) 
     buffer.append(chars, 0, read); 

    return buffer.toString(); 
} finally { 
    if (reader != null) 
     reader.close(); 
} 
+0

Что вы делали раньше? – immibis