Я пытаюсь разобрать JSON со следующим форматомРабота с дополнительным полем в формате JSON
JSONObject json;
try {
json = (JSONObject)parser.parse(value.toString());
String foo = (String) json.get("foo").toString();//error here
String id1 = (String) json.get("_id");
JSONArray array = (JSONArray)json.get("bar");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Теперь вопрос ... Foo и массив необязательны поле .... Иногда он присутствует. . А иногда даже нет ..
Я думал, что это будет работать .. кроме ТАГТ я вижу ошибку NullPointer обозначенную комментарию выше блока кода ..
Error:
java.lang.NullPointerException
at org.hadoop.Foo$MapClass.map(Foo.java:48)
Любой пример JSON
{ "_id" : "foobar", "foo" : null }
{ "_id" : "foobar", "foo" : null , "bar":[{"id":1}]}
{ "_id" : "foobar"}
{ "_id" : "foobar", "foo" : 23 }
Как выглядит JSON, что вы пытаетесь разобрать? –
@JustinJasmann: modified .. :) – Fraz
Проблема в том, что вы пытаетесь 'toString()' на 'null'. Для решения вы можете обратиться к ответу Sotirios :) –