Парсинг плоского json

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
jBee
Сообщения: 41
Зарегистрирован: 03 апр 2013, 16:24

Парсинг плоского json

Сообщение jBee » 17 май 2013, 15:05

Есть json строка в формате {"key1":val1, "key2":val2, "key3":val3}
Как получить значения по имени ключа?

Следующий код выдает исключение

Код: Выделить всё

                String line = "{"key1":val1, "key2":val2, "key3":val3}";
                try {
                	JSONObject jObj = new JSONObject(line);
			Log.d("NAME", jObjlogin.getString("key1"));	
		} catch (Exception e) {
			Log.e("JSON Parser", "Error parsing data ");
		}

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Парсинг плоского json

Сообщение KamiSempai » 17 май 2013, 15:44

Тут 2 варианта:
1) В "key1" лежит не строка, а что-то другое.
2) В JSON строке ошибка и она не парсится.

Добавьте в catch:

Код: Выделить всё

e.printStackTrace();
И напишите здесь, что вывело в логи, тогда я Вам точно смогу сказать.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Парсинг плоского json

Сообщение Mikhail_dev » 17 май 2013, 15:46

А ошибку нельзя прочитать? К примеру вместо этого
Log.e("JSON Parser", "Error parsing data ");
вот это
Log.e("JSON Parser", "Error parsing data ", e);

Судя по коду, val1 это строка, которая должна стоять в кавычках.

P.S. хех, опоздал с ответом =)

jBee
Сообщения: 41
Зарегистрирован: 03 апр 2013, 16:24

Re: Парсинг плоского json

Сообщение jBee » 20 май 2013, 12:52

В key1 лежит именно строка т.е. так: "key1":"val1"

Добавил в вывод исключения Log.e("JSON Parser", "Error parsing data " + e.toString()); получил сообщение:

Error parsing data java.lang.NullPointerException

А дело было так:

Код: Выделить всё

String line = "";

while ((line = intro.readLine()) != null ) {
	//System.out.println(line);
	Log.d(TAG_POST, line);

	// Здесь line имеет значение не "" !!!
}

intro.close();

// А здесь line имеет значение null

// и вот тут уже работает код который я привел в первом посте, и он выбрасывает Exception
Т.е. на момент парсинга в line просто не было данных поэтому и была ошибка.

Ответить