Как бороться с проблемами версии в Android 1.6 до 2.x - PullRequest
1 голос
/ 09 февраля 2011

Я собрал JSON-потребитель в Android для 1.6 (подумал, что для максимальной поддержки стоит использовать самую старую версию). Я был в состоянии успешно получить JSON под 1,5-1,6. Однако я просто бросил приложение на свой дроид (2.x) и теперь получаю «org.json.jsonexception: ожидаемое буквальное значение для символа ....». Почему разница в версиях? Как я могу справиться с этим?

Ответы [ 3 ]

0 голосов
/ 09 февраля 2011

У меня был метод для преобразования InputStream в строковое представление JSON. Мне нужно было изменить подстроку с (intial, length () - 1) до (initial, length () - 2), чтобы она работала в 1.5 и 2.x. Спасибо за помощь.

private static String convertStreamToString(InputStream is) {  
   /* 
    * To convert the InputStream to String we use the BufferedReader.readLine() 
    * method. We iterate until the BufferedReader returns null which means 
    * there's no more data to read. Each line will appended to a StringBuilder 
    * and returned as String. 
    */  
    BufferedReader reader = new BufferedReader(new InputStreamReader(is));  
    StringBuilder sb = new StringBuilder();  

    String line = null;  
    try {  
        while ((line = reader.readLine()) != null) {  
            sb.append(line + "\n");  
        }  
    } catch (IOException e) {  
        e.printStackTrace();  
    } finally {  
        try {  
            is.close();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }
    // API is defective and does not return correct json response.
    // Reformat string response to confirm to expected json response
    // return sb.toString();
    return  "{\"Results\":" + sb.substring(11, sb.length()-2) + "}\n" ;
}  
0 голосов
/ 09 июня 2012

У меня было то же сообщение об ошибке. В моем случае оказалось, что библиотека JSON была перепутана, потому что возвращенный JSON имел кавычки (") . Это явно спутало его с длиной строки и вызвало исключение.

0 голосов
/ 09 февраля 2011

Если вы не можете заставить ее работать с этой библиотекой, попробуйте GSON, что отлично

http://code.google.com/p/google-gson/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...