2011-12-27 2 views
0

Привет Я пытаюсь использовать класс GSON для преобразования следующей строки Json.GSON преобразование из

{"data": 
    {"detections": 
        [ 
        [ 
        {"language":"en","isReliable":false,"confidence":0.9759119} 
        ] 
        ] 
     } 
} 

Я получаю эту ошибку. com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Ожидаемое BEGIN_ARRAY но BEGIN_OBJECT в com.google.gson.Gson.fromJson (Gson.java:731)

Какой должна быть иерархия классов для этого ?

+0

Возможный дубликат [Почему бросить Gson fromJson в JsonSyntaxException: Ожидаемый некоторый тип, но был какой-то другой тип] (http://stackoverflow.com/questions/33621808/why-does-gson-fromjson-throw -a-jsonsyntaxexception ожидалось, некоторые типа, но-был-е годы) –

ответ

1

Возможно, следующий пример дает адекватную идею.

import java.io.FileReader; 
import java.math.BigDecimal; 

import com.google.gson.Gson; 

public class GsonFoo 
{ 
    public static void main(String[] args) throws Exception 
    { 
    Gson gson = new Gson(); 
    Bar bar = gson.fromJson(new FileReader("input.json"), Bar.class); 

    System.out.println(bar.data.detections[0][0]); 
    // output: 
    // Detection: language=en, isReliable=false, confidence=0.9759119 
    } 
} 

class Bar 
{ 
    Data data; 
} 

class Data 
{ 
    Detection[][] detections; 
} 

class Detection 
{ 
    Language language; 
    boolean isReliable; 
    BigDecimal confidence; 

    @Override 
    public String toString() 
    { 
    return String.format("Detection: language=%s, isReliable=%s, confidence=%s", language, isReliable, confidence); 
    } 
} 

enum Language 
{ 
    en, fr; 
} 
Смежные вопросы