2 zsw910616 zsw910616 于 2016.04.24 17:33 提问

MyJsonObject这个是什么,是类吗?

MyJsonObject代表什么,在下面这段代码里面。麻烦给看一下,谢谢

CloseableHttpClient httpclient = HttpClients.createDefault();

HttpGet httpget = new HttpGet("http://localhost/json");

    ResponseHandler<MyJsonObject> rh = new ResponseHandler<MyJsonObject>() {  

        @Override  
        public JsonObject handleResponse(  
                final HttpResponse response) throws IOException {  
            StatusLine statusLine = response.getStatusLine();  
            HttpEntity entity = response.getEntity();  
            if (statusLine.getStatusCode() >= 300) {  
                throw new HttpResponseException(  
                        statusLine.getStatusCode(),  
                        statusLine.getReasonPhrase());  
            }  
            if (entity == null) {  
                throw new ClientProtocolException("Response contains no content");  
            }  
            Gson gson = new GsonBuilder().create();  
            ContentType contentType = ContentType.getOrDefault(entity);  
            Charset charset = contentType.getCharset();  
            Reader reader = new InputStreamReader(entity.getContent(), charset);  
            return gson.fromJson(reader, MyJsonObject.class);  
        }  
    };  
    MyJsonObject myjson = client.execute(httpget, rh);  

4个回答

erichk2008
erichk2008   2016.04.24 18:05
已采纳

从倒数第四行代码 :return gson.fromJson(reader, MyJsonObject.class); 可以判断MyJsonObject.class的性质

Gson是google的一个Json库,使用非常简单。在Java中,只要引入包,创建对象就可以用了。

fromJson是Gson提供的一个方法。用来将一个Json数据转换为对象。调用方法是:new Gson().fromJson(Json_string,class);

这里的MyJsonObject.class应该是自定义的一个类,使用Gson就可以直接j将JSON数据封装成这个自定义的类直接使用,不用再手动解析Json里的每一行数据。

w172087242
w172087242   Ds   Rxr 2016.04.24 17:46

应该是自定义的一个json解析类,http请求返回的数据是json的话,应该能直接被该类解析,现在解析json的方式有多种,可能是完全自己解析,
也有可能是自己的json封装了第三方的解析。

zsw910616
zsw910616 谢谢
一年多之前 回复
w172087242
w172087242 回复zsw910616: 你的看看MyJson是干嘛的,是在不行可以用阿里巴巴的fastjson或其他json解析工具,如果myjson没有问题,你得检查一下你的json字符串是不是规范的,需要从你的错误信息里面找原因。
一年多之前 回复
zsw910616
zsw910616 我下了一个json-lib-2.4-jdk15.jar,但是不管用,还是报错
一年多之前 回复
zsw910616
zsw910616 是不是要下载jar包后才能用呢
一年多之前 回复
CSDNXIAOS
CSDNXIAOS   2016.04.24 17:42

 在现实世界中,你会经常发现很多独立对象都属于相同类型。可能有数千辆自行车,它们的制造商和型号都相同。每辆自行车都出于相同的蓝图,因此包含相同的组件。在面向对象的术语中,我们说你的自行车是被称为自行车的对象类(class of object)的一个实例(instance)。类(class)是创建独立对象的蓝图。下面的Bicycle类是自行车的一个实现:class Bicycle {......
答案就在这里:类是什么?
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

NLo1016
NLo1016   2017.03.13 16:03

楼主解决了么,我也遇到这个问题了,手动笑哭

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!