2016-11-10 26 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