当前位置:  开发笔记 > 编程语言 > 正文

使用JSONObject调用改进.

如何解决《使用JSONObject调用改进.》经验,为你挑选了1个好方法。

我必须从服务器发出一个get请求,它给了我很多信息.从我发现的搜索结果看来,我只能用模型类来做到这一点.事情是,为了涵盖服务器发送给我的所有响应,我必须制作53个模型类来存储信息.

我想知道是否有一个更简单的方法,比如将信息存储在JSON或其他东西中.

我正在使用OKHttp进行Retrofit.

getTimeSessionsCall.enqueue(new Callback() {
        @Override
        public void onResponse(Call call, Response response) {

            Log.i("getTimeSessions",Integer.toString(response.code()));

        }

        @Override
        public void onFailure(Call call, Throwable t) {

        }
    });

我尝试过这种电话,它什么都没存储.代码是200,但JSON仍为空.

先感谢您!



1> akash93..:

JSONObject为null的原因是因为Retrofit不知道如何解析您的响应.你可以做的是将响应作为字符串获取,然后从中构造一个JsonObject.为了做到这一点,你需要使用 ScalarConvertorsFactory,你的方法将是这样的

getTimeSessionsCall.enqueue(new Callback() {
        @Override
        public void onResponse(Call call, Response response) {

           // Get the string and convert to JSONObject

        }

        @Override
        public void onFailure(Call call, Throwable t) {

        }
    });

别忘了添加

compile 'com.squareup.retrofit2:converter-scalars:2.1.0' 使用时构建Retrofit实例时添加转换器工厂 addConvertorFactory(ScalarsConvertorFactory.create())

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有