Опитвам се да анализирам json в java.
Имам следния низ, който е валиден json според jsonlint.com
private final static String LOC_JSON =
"["
+"{"
+" \"lat1\": 39.737567,"
+" \"lat2\": 32.7801399,"
+" \"long1\": -104.98471790000002,"
+" \"long2\": -96.80045109999998"
+"},"
+" ["
+" {"
+" \"lat\": {"
+" \"b\": 38.88368709500021,"
+" \"d\": 40.620468491667026"
+" },"
+" \"long\": {"
+" \"b\": -105.75306170749764,"
+" \"d\": -104.675854661387"
+" }"
+" }"
+" ]"
+"]";
Опитвам се да го анализирам в обект и получавам следната грешка. „Очаква се BEGIN_OBJECT, но беше BEGIN_ARRAY на ред 1, колона 2“
Gson gson = new Gson();
BoxSearch b = gson.fromJson( LOC_JSON, BoxSearch.class );
BoxSearch се състои от това.
private Number lat1;
private Number lat2;
private Number long1;
private Number long2;
private Boxes[] boxes;
Boxes е обект Latitude и обект Longitude, които са дефинирани еднакви.
private String b;
private String d;
Мога да анализирам атрибутите от по-високо ниво (lat1,lat2,long1 и long2) в по-прост BoxSearch обект, който има само тези 4 атрибута. Проблемът идва, когато json и обектът са по-сложни. Възможно ли е изобщо да направя това, което се опитвам?
Надявам се, че съм предоставил достатъчно информация, за да получа малко помощ. Ще се радвам да предоставя повече информация или дори тестов проект, ако е необходимо. Изпълнявам това като junit тест.
Благодаря.