Java gson转换错误

Java gson转换错误,java,json,swing,gson,netbeans-platform,Java,Json,Swing,Gson,Netbeans Platform,我试图在netbeans上开发swing应用程序。我使用gson解码json。我从php站点获取json数据。İ无法将json数据转换为java数组 如何将json文件转换为java数组。然后,İ需要将jcombobox数据源设置为该数组 我的json文件在url上是这样的 [{"id":"1", "ad":"jack", "latitude":"41.0000", "longitude":"32.000", "speed":"", "hour":"01:28:56", "day":"18.04

我试图在netbeans上开发swing应用程序。我使用gson解码json。我从php站点获取json数据。İ无法将json数据转换为java数组

如何将json文件转换为java数组。然后,İ需要将jcombobox数据源设置为该数组

我的json文件在url上是这样的

[{"id":"1",
"ad":"jack",
"latitude":"41.0000",
"longitude":"32.000",
"speed":"",
"hour":"01:28:56",
"day":"18.04.2016",
"adres":"adres",
"resimyol":"http:\/\/maps.google.com\/maps\/api\/staticmap?.jpg"},
{"id":"2",
"ad":"Abraham",
"latitude":"41.0000",
"longitude":"41.0000",
"speed":"",
"hour":"01:28:56",
"day":"18.04.2016",
"adres":"adres",
"resimyol":"http:\/\/maps.google.com\/maps\/api\/staticmap?.jpg"}]
这里是我的java文件

public class JsonPojo {
public String id;
public String ad;
public String latitude;
public String longitude;
public String speed;
public String hour;
public String day;
public String adres;
public String resimyol;
public String getId() { return id; }
public String getName() { return ad; }
public String getlat() { return latitude; }
public String getlon() { return longitude; }
public String getspeed() { return speed; }
public String gethour() { return hour; }
public String getday() { return day; }
public String getadres() { return adres; }
public String getresim() { return resimyol; }

}

public static void main(String args[]) {
public void run() {
            new KonumGoster().setVisible(true);
             String json = null;
            try {
                json = readUrl("http://url.com/"
                        + "json.php");
            } catch (Exception ex) {
                Logger.getLogger(KonumGoster.class.getName()).log(Level.SEVERE, null, ex);
            }

Gson gson = new Gson();    
JsonPojo[] array = gson.fromJson(gson, JsonPojo[].class); 
JsonPojo obj = new Gson().fromJson(json, JsonPojo.class);
System.out.println("ID: " +obj.getId());
System.out.println("ID: " +obj.getName());
System.out.println("ID: " +obj.getlat());
System.out.println("ID: " +obj.getlon());
System.out.println("ID: " +obj.getspeed());
System.out.println("ID: " +obj.gethour());
System.out.println("ID: " +obj.getday());
System.out.println("ID: " +obj.getadres());
System.out.println("ID: " +obj.getresim());

}  
当我试图运行项目时,它会给我这样的错误

运行:
线程“AWT-EventQueue-0”com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:应为BEGIN_对象,但在第2行第13列路径处为BEGIN_数组$
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory$Adapter.read(ReflectTypeAdapterFactory.java:224)
位于com.google.gson.gson.fromJson(gson.java:887)
位于com.google.gson.gson.fromJson(gson.java:852)
位于com.google.gson.gson.fromJson(gson.java:801)
位于com.google.gson.gson.fromJson(gson.java:773)
在KonumGoster$1.run(KonumGoster.java:145)
在java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)中
位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
在java.awt.EventQueue.access$500(EventQueue.java:97)
在java.awt.EventQueue$3.run(EventQueue.java:709)
在java.awt.EventQueue$3.run(EventQueue.java:703)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
位于java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
在java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)中
位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:105)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
在java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
原因:java.lang.IllegalStateException:应为BEGIN_对象,但在第2行第13列路径处为BEGIN_数组$
位于com.google.gson.stream.JsonReader.beginObject(JsonReader.java:385)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory$Adapter.read(ReflectTypeAdapterFactory.java:213)
... 还有19个
构建成功(总时间:5分5秒)

第二条语句使用
gson
而不是
json
作为gson::fromJson的第一个参数。如果将其更改为json,GSON将正确执行其工作

构建中的错误消息来自第三条语句,您试图从JSON对象数组中读取单个项目。您只需要第二条语句,然后迭代其结果以打印每个项

Gson gson = new Gson();
JsonPojo[] array = gson.fromJson(json, JsonPojo[].class);
for (JsonPojo obj : array) {
    System.out.println("id: " + obj.getId());
    // etc
}
Gson gson = new Gson();
JsonPojo[] array = gson.fromJson(json, JsonPojo[].class);
for (JsonPojo obj : array) {
    System.out.println("id: " + obj.getId());
    // etc
}