2013-08-27 106 views
3

的阵列我有JSON数组作为字符串转换JSON字符串到对象

[ 
     { 
     "id":"1", 
      "lat": "23.053", 
      "long": "72.629", 
      "location": "ABC", 
      "address": "DEF", 
      "city": "Ahmedabad", 
      "state": "Gujrat", 
      "phonenumber": "1234567" 
     }, 
     { 
     "id":"2", 
      "lat": "23.053", 
      "long": "72.629", 
      "location": "ABC", 
      "address": "DEF", 
      "city": "Ahmedabad", 
      "state": "Gujrat", 
      "phonenumber": "1234567" 
     }, 
     { 
      "id":"3", 
     "lat": "23.053", 
      "long": "72.629", 
      "location": "ABC", 
      "address": "DEF", 
      "city": "Ahmedabad", 
      "state": "Gujrat", 
      "phonenumber": "1234567" 
     }, 
     { 
      "id":"4", 
     "lat": "23.053", 
      "long": "72.629", 
      "location": "ABC", 
      "address": "DEF", 
      "city": "Ahmedabad", 
      "state": "Gujrat", 
      "phonenumber": "1234567" 
     }, 
     { 
      "id":"5", 
     "lat": "23.053", 
      "long": "72.629", 
      "location": "ABC", 
      "address": "DEF", 
      "city": "Ahmedabad", 
      "state": "Gujrat", 
      "phonenumber": "1234567" 
     } 
] 

我想这个字符串转换为每个JSON对象。我有一个班级地址。我怎么会这个JSON字符串转换为 对象

我试图

Address address = gson.fromJson(addressJson, Address.class); 

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 
    com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176) 
    com.google.gson.Gson.fromJson(Gson.java:803) 
    com.google.gson.Gson.fromJson(Gson.java:768) 
    com.google.gson.Gson.fromJson(Gson.java:717) 
    com.google.gson.Gson.fromJson(Gson.java:689) 
+0

http://stackoverflow.com/questions/11503688/rest-and-的可能重复json-conversion-string-to-json-array – muthu

+0

@muthu不,那不是Gson。 – Brian

回答

16

试试这个

Address[] address = gson.fromJson(addressJson, Address[].class); 
+3

+1。另外,如果一个集合比List更受欢迎,你可以在''Arrays.asList''中包装'fromJson'调用(http://docs.oracle.com/javase/7/docs/api/java/util /Arrays.html#asList(T ...)) – Brian

+0

@Brian这是事实。感谢您指出这一点 –

+0

它正在工作,但同样的事情,我有一个字段的日期与价值'星期二8月27日星期二06:07:32 UTC 2013'。它说错误在java.text.ParseException:Unparseable日期:“Tue Aug 27 11:37:32 IST 2013”​​ \t java.text.DateFormat.parse(DateFormat.java:337)' – jackyesind