2013-09-18 2 views
2

У меня возникли проблемы с созданием класса, который будет разбирать gson, как я ожидаю.Gson parse Json с массивом

Я создал класс.

public class JsonObjectBreakDown { 
    public String type; 
    public List<String> coordinates = new ArrayList<String>(); 
} 

И называется

JsonObjectBreakDown p = gson.fromJson(withDup, JsonObjectBreakDown.class); 

Ниже мой JSON

{ 
    "type":"Polygon", 
    "coordinates":[ 
     [ 
     [ 
      -66.9, 
      18.05 
     ], 
     [ 
      -66.9, 
      18.05 
     ], 
     [ 
      -66.9, 
      18.06 
     ], 
     [ 
      -66.9, 
      18.05 
     ] 
     ] 
    ] 
} 

Я использовал gson, прежде чем успешно, но никогда с массивом, как это. Должен ли я использовать List/ArrayList?

Я получаю сообщение об ошибке;

Exception in thread "main" com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 31 

OpenCSV код

CSVReader reader = new CSVReader(new FileReader("c:\\Json.csv")); 
String tmp = reader.readNext(); 
CustomObject tmpObj = CustomObject(tmp[0], tmp[1],......); 
+0

Вот пример http://thegeekyland.blogspot.com/2015/11/serializing -and-deserializing-json-from.html – Arlind

ответ

4

Проблема здесь состоит в том, что у вас есть массив массивов массивов чисел с плавающей точкой в вашем JSON. Ваш класс должен быть

public class JsonObjectBreakDown { 
    public String type; 
    public List<List<float[]>> coordinates = new ArrayList<>(); 
} 

Синтаксический с вышеизложенным и пытается

System.out.println(p.coordinates.size()); 
System.out.println(p.coordinates.get(0).size()); 
System.out.println(Arrays.toString(p.coordinates.get(0).get(0))); 

дает

1 
2 
[-66.9, 18.05] 
+0

Nevermind Мне нужно было перейти на jé 1.7. Я попробую это – user2524908

+1

@ user2524908 Да, но если вы используете Java 7, вам не нужно указывать аргумент в вызове конструктора. Просто 'new ArrayList <>();' –

+0

hm, я получаю 'Unterminated object в строке 1, колонке 31.' Я предполагаю, что это означает, что есть проблема с моим json. Я проверил его правильный формат с помощью онлайн-проверки json. – user2524908

Смежные вопросы