2014-05-12 41 views
-1

在我的java代碼中發生錯誤並解決它們之後,我終於進入了運行階段,但是運行後出現異常錯誤。 我想使用傑克遜庫將json從天氣API轉換爲java對象。 我有幾個類來設置和獲取Java對象,包括:City.java,Coord.java,List1.java,Temp.java,Weather.java。我有一個名爲usertest.java的類,用於將對象映射爲測試。線程「主」中的異常:無法識別的字段

我的代碼如下:

我的getter和setter的樣本:City.java

package weather.data; 

//import java.util.List; 

public class City{ 
    private Coord coord; 
    private String country; 
    private Number id; 
    private String name; 
    private Number population; 
    ... 
    //getters and setters 
} 

usertest.java

package weather.data; 

import weather.data.City; 
import weather.data.Coord; 
import weather.data.list1; 
import weather.data.Temp; 
import weather.data.Weather; 

import com.fasterxml.jackson.core.JsonParseException; 
//import com.fasterxml.jackson.annotation.JsonMappingException; 
import com.fasterxml.jackson.databind.ObjectMapper; 
import com.fasterxml.jackson.databind.JsonMappingException; 

import java.io.File; 
import java.net.URL; 
import java.io.IOException; 

public class usertest { 

    public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException 
    { 

     URL jsonUri = new URL("https://gist.githubusercontent.com/anonymous/4b32c7ef1ceb5dd48bf5/raw/ef1987551faa3fb61473bb0e7aad70a228dc36d6/gistfile1.txt"); 
     ObjectMapper mapper = new ObjectMapper(); 


     City city = mapper.readValue(jsonUri, City.class); 
     System.out.println(city.getCoord()); 
    } 

} 

和錯誤運行後,我得到代碼: 線程「main」中的異常com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:無法識別的字段「cod」(class weather.data.City),未標記爲可忽略(5個已知屬性:「coord」,「country」,「id」,「name」,「population」])

任何幫助將不勝感激。

+2

沒有場名爲'cod'在市級 –

+0

問題是,我用jsongen生成我的豆子,它是錯誤地製造的。現在我完全改變了我的豆子,但我仍然面臨錯誤。所以我認爲我在我的豆子裏做錯了事。 – zahra

回答

0

json表示不與City.java匹配:

JSON:

{ 

    "cod": "200", 
    "message": 0.0035, 
    "city": { 
     "id": 1851632, 
     "name": "Shuzenji", 
     "coord": { 
      "lon": 138.933334, 
      "lat": 34.966671 
     }, 
     "country": "JP", 
     "population": 0 
    }, 
    "cnt": 10, 
    "list": [..] 
    } 

City類雖然是好的,但你需要創建另一類具有cod,message,city,cntlist屬性,其中city屬性應該是類型City

其他(污)替代可能是添加這些屬性並將它們設置@Ignore ..

+0

謝謝,這是一個很大的幫助 – zahra

+0

我寫了另一個類,包括什麼@哈希說:鱈魚,消息,城市,cnt和列表。但是我得到一個新的錯誤:線程「main」中的異常com.fasterxml.jackson.databind.JsonMappingException:無法將weather.data.list1的實例反序列化爲START_ARRAY令牌 – zahra

相關問題