错误解析json到arrayList

时间:2017-04-07 19:54:20

标签: java json parsing arraylist gson

我的json

[
  {
    "id": "1",
    "anneeMois": "201611",
    "dateModification": "2016-04-18",
    "montantValide": "500.00",
    "nbJustificatifs": "3",
    "visitorId": "1",
    "etat": {
      "id": "1",
      "libEtat": "Saisie clôturée"
    }
  },
  {
    "id": "8",
    "anneeMois": "201617",
    "dateModification": "2016-08-16",
    "montantValide": "650.00",
    "nbJustificatifs": "7",
    "visitorId": "1",
    "etat": {
      "id": "1",
      "libEtat": "Saisie clôturée"
    }
  },

我的班级

public class FicheFrais implements  java.io.Serializable {

    private int id;
    private String anneeMois;
    private Date dateModification;
    private float montantValide;
    private int nbJustificatifs;
    private int visitorId;

    @SerializedName("etat")
    private Etat etat;

我的班级Etat

public class Etat  implements  java.io.Serializable{

   private  int id_etat;
   private String lib_etat;

我想将我的json解析为List<Frais>

我用过

List<FicheFrais> mesFichesFrais =   unGson.fromJson(sb.toString(),TypeToken.get(new ArrayList<FicheFrais>().getClass()).getType());

但它不起作用。

1 个答案:

答案 0 :(得分:0)

你的json似乎错了,它以[并以}结尾, 如果你想让它成为一个列表,它应该以[]

开头和结尾
    [
  {
    "id": "1",
    "anneeMois": "201611",
    "dateModification": "2016-04-18",
    "montantValide": "500.00",
    "nbJustificatifs": "3",
    "visitorId": "1",
    "etat": {
      "id": "1",
      "libEtat": "Saisie clôturée"
    }
  },
  {
    "id": "8",
    "anneeMois": "201617",
    "dateModification": "2016-08-16",
    "montantValide": "650.00",
    "nbJustificatifs": "7",
    "visitorId": "1",
    "etat": {
      "id": "1",
      "libEtat": "Saisie clôturée"
    }
  }
  ]

但我建议你创建一个包含列表的对象,比如

        {
  "myList": [
    {
      "id": "1",
      "anneeMois": "201611",
      "dateModification": "2016-04-18",
      "montantValide": "500.00",
      "nbJustificatifs": "3",
      "visitorId": "1",
      "etat": {
        "id": "1",
        "libEtat": "Saisie clôturée"
      }
    },
    {
      "id": "8",
      "anneeMois": "201617",
      "dateModification": "2016-08-16",
      "montantValide": "650.00",
      "nbJustificatifs": "7",
      "visitorId": "1",
      "etat": {
        "id": "1",
        "libEtat": "Saisie clôturée"
      }
    }
  ]
}

我还建议使用http://www.jsoneditoronline.org/检查你的json是否正确