2014-09-26 89 views
0

我想解析使用ObjectMapper解析JSON字符串到對象

[{'lng':116.298871, 'lat':39.991466},{'lng':116.298871, 'lat':39.990079},{'lng':116.295787, 'lat':39.990079},{'lng':116.295787, 'lat':39.991466}]] 

到區域或協調的對象,但失敗了, 我使用objectMapper.readValue (str, Coordinate[].class);objectMapper.readValue (str, Region.class);都無法完成。 在區域

public class Region implements Serializable{  
    private static final long serialVersionUID = 1233772272079216259L;  
    private List<Coordinate> boudary;   
    public List<Coordinate> getBoudary() { 
     return boudary; 
    } 
    public void setBoudary(List<Coordinate> boudary) { 
     this.boudary = boudary; 
    } 
} 

package com.compass.goverment.resource.bean.logic; 
    public class Coordinate {   
     private double lng;   
     private double lat;     
     public Coordinate (double lng, double lat) {  
      super(); 
      this.lng = lng; 
      this.lat = lat; 
     } 

     public double getLng() {   
      return lng; 
     }  

     public void setLng (double lng) {   
      this.lng = lng; 
     }     
     public double getLat() {   
      return lat; 
     }     
     public void setLat (double lat) {    
      this.lat = lat; 
     }      
    } 

如何使用ObjectMapper解析JSON字符串到區域對象?

回答

0

有一個默認的構造函數座標類,然後

String json= "[{'lng':116.298871, 'lat':39.991466},{'lng':116.298871, 'lat':39.990079} 
    ,{'lng':116.295787, 'lat':39.990079},{'lng':116.295787, 'lat':39.991466}]]"; 
Gson gson = new Gson(); 
java.lang.reflect.Type collectionType= new TypeToken<List<Coordinate>>() {}.getType(); 
List<Coordinate> userList = gson.fromJson(json, collectionType); 
System.out.println(userList); 
+0

是什麼TypeToken? – 2014-09-26 08:47:39

+0

com.google.gson.reflect的類 – SparkOn 2014-09-26 09:13:24