2015-05-15 4 views
0

Я следую за JSON Array, и я хотел разобрать это, чтобы получить все три адреса электронной почты в три отдельные переменные. Я хотел, чтобы это было сделано с помощью библиотеки Google GSON. Как мы можем это сделать?как разобрать массив json с помощью Google gson

струнные jsonarrays =

[ 
     { 
      "Id": "0e9b73bc-cf32-48b4-88cc-ee4ff8c3a823", 
      "FirstName": "Chris", 
      "LastName": "Rogers", 
      "Height": "180cm", 
      "Weight": "74kg", 
      "location": "UK", 
      "email": "[email protected]" 
     }, 
     { 
      "Id": "0e9b73bc-7cd7-48b4-88cc-ee4ff8c76vcv", 
      "FirstName": "Lavina", 
      "LastName": "Langer", 
      "Height": "170cm", 
      "Weight": "63kg", 
      "location": "Poland", 
      "email": "[email protected]" 
     }, 
     { 
      "Id": "213jdsj-cf32-48b4-1119hshjakakaaka", 
      "FirstName": "Mike", 
      "LastName": "Harford", 
      "Height": "184cm", 
      "Weight": "80kg", 
      "location": "Paris", 
      "email": "[email protected]" 
     } 
    ] 

Я написать код

Gson myGson = new Gson(); 
JsonParser jsonParser = new JsonParser(); 
JsonArray userArray =jsonParser.parse(jsonarrays).getAsJsonArray(); 
List messageArray = new ArrayList(); 
    for (JsonElement aUser : userArray){ 
     User aTwitterUser = myGson.fromJson(aUser, User.class); 
     messageArray.add(aTwitterUser); 
} 

ошибка, что я получаю

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING 
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:200) 
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:103) 
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:196) 
    at com.google.gson.Gson.fromJson(Gson.java:810) 
    at com.google.gson.Gson.fromJson(Gson.java:875) 
    at com.google.gson.Gson.fromJson(Gson.java:848) 
    at com.altruista.mp.rest.messages.MessagesTest.testAPIMessages(MessagesTest.java:113) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) 
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) 
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) 
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) 
+0

Просьба также обмениваться контентом класса пользователей. –

ответ

1

Очевидно ваш JSON не так, как com.google. gson.JsonSyntaxException. Попробуйте удалить последнюю запятую из каждого объекта. Возможно, этому не нравится. Используйте http://jsonlint.com, чтобы проверить вас JSON.

Смежные вопросы