2015-10-15 153 views
0

這裏是我嘗試反序列化對象:谷歌GSON - com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:預期字符串但BEGIN_OBJECT

public class DomaineBO { 

    private String nom; 

    private Set<String> codesQC; 

    private Set<String> codesSql; 

    ... 

這裏是我的JSON數據:

[ 
    { 
     "id":30, 
     "nom":"Usafe", 
     "gere":true, 
     "codesQC":[ 
     { 
      "id":40, 
      "nom":"ServicesTransversaux", 
      "nomHTML":"ServicesTransversaux" 
     }, 
     { 
      "id":41, 
      "nom":"%22Services%20Transversaux%22", 
      "nomHTML":"\"Services Transversaux\"" 
     } 
     ], 
     "codesSql":[ 
     { 
      "id":61, 
      "nom":"USAF" 
     } 
     ] 
    }, 
    { 
     "id":33, 
     "nom":"Epublishing", 
     "gere":true, 
     "codesQC":[ 
     { 
      "id":45, 
      "nom":"ServicesDocumentaires", 
      "nomHTML":"ServicesDocumentaires" 
     } 
     ], 
     "codesSql":[ 
     { 
      "id":64, 
      "nom":"EDIT" 
     } 
     ] 
    }, 
    { 
     "id":25, 
     "nom":"Commons", 
     "gere":true, 
     "codesQC":[ 
     { 
      "id":34, 
      "nom":"Commons", 
      "nomHTML":"Commons" 
     } 
     ], 
     "codesSql":[ 
     { 
      "id":82, 
      "nom":"COM" 
     } 
     ] 
    }, 
    { 
     "id":22, 
     "nom":"Finance", 
     "gere":true, 
     "codesQC":[ 
     { 
      "id":27, 
      "nom":"%22Refonte%20Contentieux%22", 
      "nomHTML":"\"Refonte Contentieux\"" 
     }, 
     { 
      "id":28, 
      "nom":"Finance", 
      "nomHTML":"Finance" 
     }, 
     { 
      "id":29, 
      "nom":"%22Refonte%20Finance%20Client%22", 
      "nomHTML":"\"Refonte Finance Client\"" 
     } 
     ], 
     "codesSql":[ 
     { 
      "id":45, 
      "nom":"FINA" 
     } 
     ] 
    }, 
    { 
     "id":32, 
     "nom":"Inconnu", 
     "gere":true, 
     "codesQC":[ 

     ], 
     "codesSql":[ 

     ] 
    }, 
    { 
     "id":31, 
     "nom":"Marketing", 
     "gere":true, 
     "codesQC":[ 
     { 
      "id":42, 
      "nom":"Marketing_ActionsCom", 
      "nomHTML":"Marketing_ActionsCom" 
     }, 
     { 
      "id":44, 
      "nom":"Vente", 
      "nomHTML":"Vente" 
     }, 
     { 
      "id":43, 
      "nom":"Marketing_Produits", 
      "nomHTML":"Marketing_Produits" 
     } 
     ], 
     "codesSql":[ 
     { 
      "id":63, 
      "nom":"MARK" 
     } 
     ] 
    }, 
    { 
     "id":26, 
     "nom":"Facturation", 
     "gere":true, 
     "codesQC":[ 
     { 
      "id":35, 
      "nom":"Facturation", 
      "nomHTML":"Facturation" 
     } 
     ], 
     "codesSql":[ 
     { 
      "id":54, 
      "nom":"FACT" 
     } 
     ] 
    }, 
    { 
     "id":24, 
     "nom":"Sinistre", 
     "gere":true, 
     "codesQC":[ 
     { 
      "id":32, 
      "nom":"Sinistre", 
      "nomHTML":"Sinistre" 
     }, 
     { 
      "id":33, 
      "nom":"Entreprise", 
      "nomHTML":"Entreprise" 
     } 
     ], 
     "codesSql":[ 
     { 
      "id":47, 
      "nom":"SINI" 
     } 
     ] 
    }, 
    { 
     "id":23, 
     "nom":"Partenaire", 
     "gere":true, 
     "codesQC":[ 
     { 
      "id":31, 
      "nom":"Partenaire", 
      "nomHTML":"Partenaire" 
     }, 
     { 
      "id":30, 
      "nom":"Partenaires", 
      "nomHTML":"Partenaires" 
     } 
     ], 
     "codesSql":[ 
     { 
      "id":46, 
      "nom":"PART" 
     } 
     ] 
    }, 
    { 
     "id":1, 
     "nom":"Contrat", 
     "gere":true, 
     "codesQC":[ 
     { 
      "id":24, 
      "nom":"Contrat", 
      "nomHTML":"Contrat" 
     } 
     ], 
     "codesSql":[ 
     { 
      "id":42, 
      "nom":"CONT" 
     } 
     ] 
    }, 
    { 
     "id":29, 
     "nom":"Services Transverses", 
     "gere":true, 
     "codesQC":[ 
     { 
      "id":39, 
      "nom":"%22Services%20Transversaux%22", 
      "nomHTML":"\"Services Transversaux\"" 
     }, 
     { 
      "id":38, 
      "nom":"ServicesTransversaux", 
      "nomHTML":"ServicesTransversaux" 
     } 
     ], 
     "codesSql":[ 
     { 
      "id":58, 
      "nom":"SECU" 
     }, 
     { 
      "id":57, 
      "nom":"DMS" 
     }, 
     { 
      "id":60, 
      "nom":"INDE" 
     }, 
     { 
      "id":59, 
      "nom":"JBPM" 
     } 
     ] 
    }, 
    { 
     "id":28, 
     "nom":"Flux de données", 
     "gere":true, 
     "codesQC":[ 
     { 
      "id":37, 
      "nom":"%22Flux%20de%20donn%C3%A9es%22", 
      "nomHTML":"\"Flux de données\"" 
     } 
     ], 
     "codesSql":[ 
     { 
      "id":81, 
      "nom":"FLUX" 
     } 
     ] 
    }, 
    { 
     "id":27, 
     "nom":"Reprise", 
     "gere":true, 
     "codesQC":[ 
     { 
      "id":36, 
      "nom":"Reprise", 
      "nomHTML":"Reprise" 
     } 
     ], 
     "codesSql":[ 
     { 
      "id":55, 
      "nom":"FINA" 
     } 
     ] 
    }, 
    { 
     "id":21, 
     "nom":"Batch", 
     "gere":true, 
     "codesQC":[ 
     { 
      "id":25, 
      "nom":"Batch", 
      "nomHTML":"Batch" 
     } 
     ], 
     "codesSql":[ 
     { 
      "id":44, 
      "nom":"BATCH" 
     } 
     ] 
    } 
] 

這裏是我如何努力將它們轉換:

GsonBuilder builder = new GsonBuilder(); 
Gson gson = builder.create(); 
DomaineBO[] infos = (DomaineBO[]) gson.fromJson(getJSonResponse(url), clazz); 
Arrays.asList(infos); 

當我在操作,將其轉換在我的課DomaineBO,我得到的消息JsonSyntaxException Expected a string but was BEGIN_OBJECT at line 1 column 51 path $[0].codesQC[0]

我認爲這是因爲屬性是字符串集。 我可以嘗試使用數組,但我想知道是否有更好的方法?

回答

1

這是因爲在代碼中你有一組字符串。製作類CodeQC與域ID,NOM,nomHTML和更改

Set<String> codesQC 

Set<CodeQC> codesQC 
相關問題