当前位置: 首页 > 知识库问答 >
问题:

改型返回LinkedTreeMap而不是JSON

岑彬炳
2023-03-14

我正在使用Reverfit 2.0从返回json文本的web服务读取数据,但在下面的代码中响应是LinkedTreeMap,我无法将其转换为json:

public interface GeoAPIInterface {
    String ENDPOINT = "http://www.geoplugin.net/";

    @GET("json.gp")
    Call<Object> getIP(@Query("ip") String ip);
}

现在我从站点读取数据:

Retrofit retrofit = new Retrofit.Builder()
         .baseUrl(GeoAPIInterface.ENDPOINT)
         .addConverterFactory(GsonConverterFactory.create())
         .build();
GeoAPIInterface inBankAPI = retrofit.create(GeoAPIInterface.class);
Call<Object> call=inBankAPI.getIP("8.8.8.8");
call.enqueue(new Callback<Object>() {
    @Override
    public void onResponse(Response<Object> response, Retrofit retrofit) {
        Log.d("App","");
    }

    @Override
        public void onFailure(Throwable t) {
            Log.d("App","error!");
    }
});

形成的url为http://www.geoplugin.net/json.gp?ip=8.8.8.8json响应为

{
  "geoplugin_request":"8.8.8.8",
  "geoplugin_status":200,
  "geoplugin_credit":"Some of the returned data includes GeoLite data created by MaxMind, available from <a href=\\'http:\/\/www.maxmind.com\\'>http:\/\/www.maxmind.com<\/a>.",
  "geoplugin_city":"Mountain View",
  "geoplugin_region":"CA",
  "geoplugin_areaCode":"650",
  "geoplugin_dmaCode":"807",
  "geoplugin_countryCode":"US",
  "geoplugin_countryName":"United States",
  "geoplugin_continentCode":"NA",
  "geoplugin_latitude":"37.386002",
  "geoplugin_longitude":"-122.083801",
  "geoplugin_regionCode":"CA",
  "geoplugin_regionName":"California",
  "geoplugin_currencyCode":"USD",
  "geoplugin_currencySymbol":"&#36;",
  "geoplugin_currencySymbol_UTF8":"$",
  "geoplugin_currencyConverter":1
}

共有2个答案

慕容修伟
2023-03-14
热门标签
衡修洁
2023-03-14
相关问题
 类似资料:
  • 我试图让2支球队互相比赛。当我说团队1.玩(团队2)时,我称之为;当 i 生成的数字小于 0.5 时,team2 应获胜,如果大于 0.5,则团队 1 应获胜。当团队 1 获胜时,它会正确显示为尼克斯,但当团队 2 获胜时,它会显示内存地址。我怎么能让它正确地说网是赢的,而不是team@78987neu73

  • 问题内容: 这是我的发件人实体 当我尝试执行以下查询时: 发生以下错误: 错误:org.hibernate.property.BasicPropertyAccessor- HHH000123:类中的IllegalArgumentException:be.gimme.persistence.entities.Sender,属性的设置方法:senderId 错误:org.hibernate.prope

  • 我正在使用Yaml(和Python!)第一次。我试图从一个.yaml文件中加载多个文档,但没有得到我所期望的结果。我正在期待一个包含每个文档的dicts的dict返回,但却得到了一个生成器对象...?我应该注意到,当我在前面的测试中对单个文档yaml文件使用yaml.load()(而不是load_all())时,我能够很好地取回一个字典。 ...产生以下终端输出:

  • 我写了自己的类加载器,它与类一起工作,实现了接口插件。但是我不能将类转换为插件。怎么了? 错误:(18,47)java:不兼容的类型:java。lang.类无法转换为插件 我补充说,这是我的SimpleClassLoader类的主要部分,它扩展了ClassLoader。

  • await返回[Function]而不是value 尝试使用async和await函数从firebase返回查询的值。返回的结果是[Function]或未处理的承诺拒绝警告。async和await是新的承诺,但我在几个网站上尝试了基本的示例,大多数都有resolve和reject参数,我认为这应该与firebase的承诺相同。 我试了两个不同版本,结果都不正确。 返回UnhandledPromis

  • 代码段用于获取从文本文件中提取的一行文本,将其分离为单独的标记,并将每个标记存储在数组的索引中。起初我以为问题出在文本文件上,但是直接将字符串放入编辑器并不能解决这个问题。 使用字符串,如: 带分隔符的StringTokenizer对象返回前四个标记作为正确的字符串,但其余四个标记为null。 有趣的是,另一个字符串: “Gnollnonegeralany222taunttaunt” 鸡肉没有野兽