2016-11-10 57 views
0

在我的java項目中,我將貨幣代碼及其擴展作爲json字符串作爲api調用的結果.Below是json結果。如何提取貨幣json結果字符串

 String jsonString = { 
    "AED": "United Arab Emirates Dirham", 
    "AFN": "Afghan Afghani", 
    "ALL": "Albanian Lek", 
    "AMD": "Armenian Dram", 
    "ANG": "Netherlands Antillean Guilder", 
    "AOA": "Angolan Kwanza", 
    "ARS": "Argentine Peso", 
    "AUD": "Australian Dollar", 
    "AWG": "Aruban Florin", 
    "AZN": "Azerbaijani Manat", 
    "BAM": "Bosnia-Herzegovina Convertible Mark", 
    "BBD": "Barbadian Dollar", 
    "BDT": "Bangladeshi Taka", 
    "BGN": "Bulgarian Lev", 
    "BHD": "Bahraini Dinar", 
    "BIF": "Burundian Franc", 
    "BMD": "Bermudan Dollar", 
    "BND": "Brunei Dollar", 
    "BOB": "Bolivian Boliviano", 
    "BRL": "Brazilian Real", 
    "BSD": "Bahamian Dollar", 
    "BTC": "Bitcoin", 
    "BTN": "Bhutanese Ngultrum", 
    ...... 
    } 

現在我怎樣才能提取關鍵值對從上方JSON字符串其中貨幣代碼來作爲密鑰和擴張來作爲值,這樣我可以將其存儲到列表或地圖。

+0

等等!在Java中,我們有代表貨幣的類貨幣。貨幣通過其ISO 4217貨幣代碼進行標識。給我一個理由,在繼續之前不要使用它。 – xenteros

+3

請參閱此Stackoverflow響應:https://stackoverflow.com/questions/2591098/how-to-parse-json-in-java。 – boky

+0

更相關的重複。 http://stackoverflow.com/questions/443499/convert-json-to-map –

回答

0

可以使用jackson從使用下面的代碼Inputstream/String/byte[]/Url/File/ReaderMap<String,String>閱讀JSON:

ObjectMapper mapper = new ObjectMapper();// do this construction at application level. Not for every call. 
    Map<String,String> codeDescMap = mapper.readValue(source,mapper.getTypeFactory() 
     .constructMapLikeType(Map.class, 
       String.class,String.class)); 

其中源可以是Inputstream/String/byte[]/Url/File/Reader與有效的JSON結構。

+0

這不會回答如何從JSON獲取任何數據。和傑克遜似乎是不必要的 –

+0

op的用例是從api調用讀取數據並將其存儲在映射或列表中。由於它是api調用,因此他會將任何需要反序列化的數據。 – Shashank