代码之家  ›  专栏  ›  技术社区  ›  Sook Lim

在安卓系统中,有没有办法从国家名称中获取国家资本?

  •  0
  • Sook Lim  · 技术社区  · 6 年前

    嗨,我是android新手,目前我有一个应用程序,可以显示谷歌地图。当用户接触到一个国家时,我会得到该国家的名称,如下所示:

    addresses = geocoder.getFromLocation(point.latitude, point.longitude, 1);
     selectedCountry = address.getCountryName();
    

    我把这个国家的名字传给一个新的活动来显示名字和资本?但是我不知道如何从名字中得到资本?

    2 回复  |  直到 6 年前
        1
  •  3
  •   Yohann L.    6 年前

    解决方案1: 您可以使用以下链接执行此操作: https://restcountries.eu/rest/v2/name/{YourNameCountry}

    Get JSON Data from URL Using Android? 然后是对JSON对象的简单请求。

    解决方案2: 同样的方法,但如果您不需要关于该国的所有信息,您可以使用以下方法检索资本:

    https://restcountries.eu/rest/v2/name/{YourNameCountry}?fields=capital

    解决方案3:

    提供完整信息的所有国家/地区: https://restcountries.eu/rest/v2/all 只有资本的所有国家: https://restcountries.eu/rest/v2/all?fields=name;capital

        2
  •  0
  •   Srinivasa Prudhvi Pendem    6 年前

    [{“姓名”:“阿富汗”、“首都”:“喀布尔”},{“姓名”:“陆地岛屿”、“首都”:“马里哈姆”},{“姓名”:“阿尔巴尼亚”、“首都”:“地拉那”},{“姓名”:“阿尔及利亚”、“首都”:“阿尔及尔”},{“姓名”:“美属萨摩亚”、“首都”:“帕戈帕戈”},{“姓名”:“安道尔”、“首都”:“安道尔·拉维拉”},{“姓名”:“安哥拉”、“首都”:“罗安达”},{“姓名”:“安圭拉”、“首都”:“山谷”},{“姓名”:“南极洲”、“首都”:“},{”姓名“:”安提瓜和巴布达“,”首都“:”圣约翰“,{”姓名“:”阿根廷“,”首都“:”布宜诺斯艾利斯“,{”姓名“:”亚美尼亚“,”首都“:”埃里温“,{”姓名“:”阿鲁巴“,”首都“:”奥兰杰斯塔德“,{”姓名“:”澳大利亚“,”首都“:”堪培拉“,{”姓名“,”奥地利“,”首都“:”维也纳“,{”姓名“:”阿塞拜疆“,”首都“:”巴库“,{”姓名“,”巴哈马“,”首都:拿骚首都:麦纳麦首都:孟加拉国首都:达卡首都:巴巴多斯首都:布里奇敦首都:白俄罗斯首都:明斯克首都:比利时首都:布鲁塞尔首都:贝尔莫潘首都:贝宁首都:波尔图诺沃首都:百慕大首都:汉密尔顿首都不丹,“,”首都“:”廷布“,”姓名“:”玻利维亚多民族国“,”首都“:”苏克雷“,”姓名“:”博内尔、圣尤斯特修斯和萨巴“,”首都“:”克拉伦代克“,”姓名“:”波斯尼亚和黑塞哥维那“,”首都“:”萨拉热窝“,”,”姓名“:”博茨瓦纳“,”首都“:”哈博罗内“,”姓名“,”布维特岛“,”首都“,”,”,“,”,”,“,”姓名“,”巴西“,”首都“:”巴西“,”,”,“,”姓名“,”姓名“,”英属印度洋领土,“,”首都“:”迭戈·加西亚“,”{”姓名“:”美国小离岛“,”首都“,”{”姓名“:”维尔京群岛(英国)”,”首都“:”路城“,”{”姓名“:”维尔京群岛(美国)”,”首都“:”夏洛特·阿马里“,”{”姓名“:”文莱达鲁萨兰国“,”首都“:”斯里巴加湾“,{”姓名“:”保加利亚“,”首都“:”索非亚“,{”姓名“:”布基纳法索,首都:瓦加杜古,首都:布琼布拉,首都:柬埔寨,首都:金边,首都:喀麦隆,首都:雅温得,首都:渥太华,首都:普拉亚,首都:中非共和国,首都:班吉名称:“乍得”,“首都”:“恩贾梅纳”},{“姓名”:“智利”,“首都”:“圣地亚哥”},{“姓名”:“中国”,“首都”:“北京”},{“姓名”:“圣诞岛”,“首都”:“飞鱼湾”},{“姓名”:“科科斯(基林)群岛”,“首都”:“西岛”},{“姓名”:“哥伦比亚”,“首都”:“波哥大”},{“姓名”:“科摩罗”,“首都”:“莫罗尼”},{“姓名”:“刚果”;“首都”:“布拉柴维尔”},{姓名:“刚果(民主共和国)”,“首都”:“金沙萨”},{“姓名”:“库克群岛”,“首都”:“阿瓦鲁阿”},{“姓名”:“哥斯达黎加”,“首都”:“圣何塞”},{“姓名”:“克罗地亚”,“首都”:“萨格勒布”},{“姓名”:“古巴”,“首都”:“哈瓦那”},{“姓名”:“库拉索岛”;“首都”:“威廉斯塔德”},{“姓名”:“塞浦路斯”;“首都”:“尼科西亚”},{“姓名”:“捷克共和国”;“首都”:“布拉格”},{“姓名”:“丹麦”、“首都”:“哥本哈根”},{“姓名”:“吉布提”、“首都”:“吉布提”},{“姓名”:“多米尼加”、“首都”:“罗索”},{“姓名”:“多米尼加共和国”、“首都”:“圣多明各”},{“姓名”:“厄瓜多尔”、“首都”:“基多”},{“姓名”:“埃及”、“首都”:“开罗”},{“姓名”:“萨尔瓦多”、“首都”:“圣萨尔瓦多”},{“姓名”:“赤道几内亚”、“首都”:“马拉博”},{名称:“厄立特里亚”,“首都”:“阿斯马拉”},{“名称”:“爱沙尼亚”,“首都”:“塔林”},{“名称”:“埃塞俄比亚”,“首都”:“亚的斯亚贝巴”},{“名称”:“福克兰群岛(马尔维纳斯)”,“首都”:“斯坦利”},{“名称”:“法罗群岛”,“首都”:“特尔沙夫”},{“名称”:“斐济”,“首都”:“苏瓦”},{“名称”:“芬兰”,“首都”:“赫尔辛基”},{“名称”:“法国”,“首都”:“巴黎”},{“名称”:法属圭亚那,首都:卡宴,首都:帕佩特,法国南部地区,首都:法属圭亚那,首都:加蓬,首都:利伯维尔,冈比亚,首都:班珠尔,格鲁吉亚,首都:第比利斯,德国,首都:柏林,加纳,首都:阿克拉“:”直布罗陀“,”首都“:”直布罗陀“,”希腊“,”首都“:”雅典“,”格陵兰“,”首都“,”努克“,”格林纳达“,”首都“,”圣乔治“,”瓜德罗普“,”首都“:”巴斯特尔“,”名称“,”关岛“,”首都“:”哈格特±a“,”名称“:”危地马拉“,”首都“,”危地马拉城“,”,”,“{”名称“:”根西岛“,”首都“:”圣彼得港“,”名称“,”几内亚“,”,“首都”:“科纳克里”,{“姓名”:“几内亚比绍”,“首都”:“比绍”},{“姓名”:“圭亚那”,“首都”:“乔治敦”},{“姓名”:“海地”,“首都”:“太子港”},{“姓名”:“赫德岛和麦克唐纳群岛”,“首都”:“},{“姓名”:“罗马”},{“姓名”:“洪都拉斯”,“首都”:“特古西加尔巴”},{“姓名”:“香港”,“首都”:“维多利亚市”},{“姓名”:“匈牙利”、“首都”:“布达佩斯”}、{“姓名”:“冰岛”、“首都”:“雷克雅未克”}、{“姓名”:“印度”、“首都”:“新德里”}、{“姓名”:“印度尼西亚”、“首都”:“雅加达”}、{“姓名”:“科特迪瓦”、“首都”:“亚穆苏克罗”}、{“姓名”:“伊朗伊斯兰共和国”、“首都”:“德黑兰”}、{“姓名”:“伊拉克”、“首都”:“巴格达”}、{“姓名”:“爱尔兰”、“首都”:“都柏林”}、{“姓名”:马恩岛,首都:道格拉斯,首都:耶路撒冷,首都:意大利,首都:罗马,首都:牙买加,首都:金斯敦,首都:日本,首都:东京,首都:肯尼亚,首都:内罗毕,首都:圣赫利埃,首都:约旦,首都:安曼,首都:哈萨克斯坦,首都:阿斯塔纳,首都:肯尼亚,首都:内罗毕,首都:基里巴斯,首都:南塔拉瓦,首都:科威特,首都:科威特城,首都:比什凯克,首都:老挝人民民主共和国,首都:万象,首都:拉脱维亚,首都:里加,首都:贝鲁特,黎巴嫩,首都:莱索托,首都:马塞卢,首都:利比里亚,首都:蒙罗维亚,首都:利比亚、首都:的黎波里、列支敦士登、首都:瓦杜兹、立陶宛、首都:维尔纽斯、卢森堡、首都:卢森堡、澳门、首都:马其顿、马其顿(前南斯拉夫共和国)、首都:斯科普里、马达加斯加、首都:塔那那利佛、马拉维、首都:利隆圭名称:“马来西亚”、“首都”:“吉隆坡”{“名称”:“马尔代夫”、“首都”:“马尔代夫”}、{“名称”:“马里”、“首都”:“巴马科”}、{“名称”:“马耳他”、“首都”:“瓦莱塔”}、{“名称”:“马绍尔群岛”、“首都”:“马朱罗”}、{“名称”:“马提尼克”、“首都”:“法兰西堡”}、{“名称”:“毛里塔尼亚”、“首都”:“努瓦克肖特”}、{“名称”:“毛里求斯”、“首都”:“路易港”}、{“名称”:马约特,首都:马穆祖,首都:墨西哥城,首都:密克罗尼西亚联邦,首都:帕利基尔,首都:摩尔多瓦共和国,首都:基努,首都:摩纳哥,首都:摩纳哥,首都:摩纳哥,首都:蒙纳哥,首都:乌兰巴托,首都:黑山,首都:波德戈里察,首都:蒙特塞拉特普利茅斯{“姓名”:“摩洛哥”、“首都”:“拉巴特”}、{“姓名”:“莫桑比克”、“首都”:“马普托”}、{“姓名”:“缅甸”、“首都”:“内比都”}、{“姓名”:“纳米比亚”、“首都”:“温得和克”}、{“姓名”:“瑙鲁”、“首都”:“雅伦”}、{“姓名”:“尼泊尔”、“首都”:“加德满都”}、{“姓名”:“荷兰”、“首都”:“阿姆斯特丹”}、{“姓名”:“新喀里多尼亚”、“首都”:“努马”}、{“姓名”:新西兰,首都:惠灵顿,首都:马那瓜,首都:尼日尔,首都:尼亚美,首都:平壤,首都:北马里亚纳群岛,首都“:”塞班岛“,”名称“:”挪威“,”首都“:”奥斯陆“,”名称“:”阿曼“,”首都“:”马斯喀特“,”名称“,”巴基斯坦“,”首都“:”伊斯兰堡“,”名称“:”帕劳“,”首都“:”恩格尔穆德“,”名称“:”巴勒斯坦国“,”首都“:”拉马拉“,”名称“:”巴拿马“,”巴拿马城“,”名称“:”巴布亚新几内亚“,”首都“:”莫尔兹比港“,”,”名称“,”巴拉圭“,”首都“:”亚松森“,”,{“姓名”:“秘鲁”、“首都”:“利马”},{“姓名”:“菲律宾”、“首都”:“马尼拉”},{“姓名”:“皮特凯恩”、“首都”:“亚当斯敦”},{“姓名”:“波兰”、“首都”:“华沙”},{“姓名”:“葡萄牙”、“首都”:“里斯本”},{“姓名”:“波多黎各”、“首都”:“圣胡安”},{“姓名”:“卡塔尔”、“首都”:“多哈”},{“姓名”:“科索沃共和国”、“首都”:“普里什蒂纳”},{“姓名”:“鲁宁”、“首都”圣丹尼斯首都布加勒斯特首都詹姆斯敦首都圣基加利首都巴塞特雷圣巴塞勒米首都古斯塔维亚圣赫勒拿阿森松岛特里斯坦达库尼亚首都詹姆斯敦圣基茨和尼维斯首都巴塞特雷圣卢西亚,“首都”:“卡斯特里”、“姓名”:“圣马丁(法语部分)”,“首都”:“马里格特”;“姓名”:“圣皮埃尔和米克伦”、“首都”:“圣皮埃尔”;“圣文森特和格林纳丁斯”、“首都”:“金斯敦”;“姓名”:“萨摩亚”、“首都”:“阿皮亚”;“姓名”:“圣马力诺”、“首都”:“圣马力诺市”;{“姓名”:“圣多美和普林西比”、“首都”:“索汤姆”;{”名称:“沙特阿拉伯”、“首都”、“利雅得”{“名称”:“塞内加尔”、“首都”、“达喀尔”}、{“名称”:“塞尔维亚”、“首都”、“贝尔格莱德”}、{“名称”:“塞舌尔”、“首都”:“维多利亚”}、{“名称”:“塞拉利昂”、“首都”:“弗里敦”}、{“名称”:“新加坡”、“首都”}、{“名称”:“圣马丁(荷兰部分)”、“首都”:“菲利普堡”}、{“名称”:“斯洛伐克”、“首都”:“布拉迪斯拉发”“},{“姓名”:“斯洛文尼亚”,“首都”:“卢布尔雅那”},{“姓名”:“所罗门群岛”,“首都”:“霍尼亚拉”},{“姓名”:“索马里”,“首都”:“摩加迪沙”},{“姓名”:“南非”,“首都”:“比勒陀利亚”},{“姓名”:“南乔治亚和南桑威奇群岛”,“首都”:“爱德华国王角”},{“姓名”:“韩国(共和国)”,“首都”:“首尔”},{“姓名”:“南苏丹”,“首都”:“朱巴”{“姓名”:“西班牙”、“首都”:“马德里”}、{“姓名”:“斯里兰卡”、“首都”:“科伦坡”}、{“姓名”:“苏丹”、“首都”:“喀土穆”}、{“姓名”:“苏里南”、“首都”:“帕拉马里博”}、{“姓名”:“斯瓦尔巴特和扬马扬”}、{“首都”:“隆伊尔拜恩”}、{“姓名”:“斯威士兰”、“首都”:“洛班巴”}、{“姓名”:“瑞典”、“首都”:“斯德哥尔摩”}、{“姓名”:“瑞士”、“首都”:“伯尔尼”{名称:“阿拉伯叙利亚共和国”、“首都”:“大马士革”{“姓名”:“台湾”、“首都”:“台北”}、{“姓名”:“塔吉克斯坦”、“首都”:“杜尚别”}、{“姓名”:“坦桑尼亚联合共和国”、“首都”:“多多多马”}、{“姓名”:“泰国”、“首都”:“曼谷”}、{“姓名”:“东帝汶”、“首都”:“帝力”}、{“姓名”:“多哥”、“首都”:“洛美”}、{“姓名”:“托克劳”、“首都”:“法考福”}、{“姓名”:汤加,首都:努库阿洛法,首都:特立尼达和多巴哥,首都:西班牙港,首都:突尼斯,首都:突尼斯,首都:安卡拉,首都:土库曼斯坦,首都:阿什哈巴德

    步骤:

    1.创建一个 countrycapitals.json 记录上述json数据并将其复制到该文件中。 2.创建一个 资产 文件夹内 主要的 countrycapitals.json 将文件复制到此资产文件夹。

    3.在您的活动上粘贴以下代码。

        String country_name = "selectedCountry";
    
        try {
            JSONArray jsonArray = new JSONArray(loadJSONFromAsset());
    
            for (int i = 0; i < jsonArray.length(); i++) {
    
                JSONObject jsonObject = jsonArray.getJSONObject(i);
    
                String cou_name = jsonObject.getString("name");
                String cou_cap = jsonObject.getString("capital");
    
                if (cou_name.equalsIgnoreCase(country_name)) {
                    Toast.makeText(this, "capital " + cou_cap, Toast.LENGTH_SHORT).show();
                    //Here you will get the capital of respected country.
                    break;
                }
    
            }
    
    
        } catch (Exception e) {
    
        }
    

    public String loadJSONFromAsset() {
        String json = null;
        try {
            InputStream is = getAssets().open("capitals.json");
            int size = is.available();
            byte[] buffer = new byte[size];
            is.read(buffer);
            is.close();
            json = new String(buffer, "UTF-8");
        } catch (IOException ex) {
            ex.printStackTrace();
            return null;
        }
        return json;
    }