2013-09-20 3 views
1

Вот мой JSON СтрокаJSON строки в JSON объект в Java

"[{"name":"3214657890RootSAPSSE","children":[{"name":"672BENIAMEEN .Sales Base Market SectionCustomer Representative"},{"name":"672BENIAMEEN .Sales Base Market SectionPeão"}]}]" 

Когда я разобрать его на объект JSON в Java я получаю пустой. Это поле исходит из скрытого поля HTML, в котором он исходит из java-скрипта.

Вот мой код Java

String x = request.getParameter("JSONString"); 
System.out.println(x); 
     JSONArray jsonObject = (JSONArray) JSONValue.parse(x); 
     Gson gson = new Gson(); 
     java.lang.reflect.Type type = new TypeToken<List<EmployeeJSONObj>>(){}.getType(); 
     List<EmployeeJSONObj>l = gson.fromJson(jsonObject.toJSONString(), type); 
     System.out.println(l.get(0).getName()); 

Вот мой Java Class

public class EmployeeJSONObj { 
    private String name; 
    private List<EmployeeJSONObj> children = new LinkedList<>(); 
    EmployeeJSONObj() 
    { 

    } 
    public String getName() 
    { 
     return name; 
    } 

    public String toString() { 
     return "name: " + name + ", children = " + children; 
    } 

} 
+1

Почему вы используете две различные библиотеки разбора JSON? –

+0

Я просто запустил ваш код, и все работает отлично. Вы уверены, что json в 'x' совпадает с тем, что вы разместили выше? –

ответ

0

Не дважды разобрать строку, как это; это не имеет смысла делать это. Пройдите x прямо в GSON.

String x = request.getParameter("JSONString"); 
Gson gson = new Gson(); 
java.lang.reflect.Type type = new TypeToken<List<EmployeeJSONObj>>(){}.getType(); 
List<EmployeeJSONObj>l = gson.fromJson(x, type); 
System.out.println(l.get(0).getName()); 
+0

Я попробовал, прежде чем он не сработает. Когда я печатаю эту строку и передаю ее в GSON, она идет нормально, но как только я передаю x, это дает мне разные ошибки. Застрял в нем с последних 4 часов, и я не знаю, в чем проблема с моим кодом. – user2777070

+0

Мы не можем вам помочь, если вы не сообщите нам, что это за ошибки. –

+0

Это ошибка, которую я получаю «Ожидаемый BEGIN_ARRAY, но был STRING в строке 1 столбца 2». – user2777070

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