这是我尝试反序列化的对象:
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
进行转换的操作时,我得到了带有消息Expected a string but was BEGIN_OBJECT at line 1 column 51 path $[0].codesQC[0]
的JsonSyntaxException
我认为这是因为属性是字符串集。 我可以尝试使用数组,但我想知道是否有更好的方法?
答案 0 :(得分:1)
这是因为在代码中你有一组String。使用字段id,nom,nomHTML和更改
创建类CodeQCSet<String> codesQC
到
Set<CodeQC> codesQC