栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java调取第三方HTTP,并将所获复杂(对象内包对象)json转为Java对象调用。

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java调取第三方HTTP,并将所获复杂(对象内包对象)json转为Java对象调用。

1 Java 使用 RestTemplate 调取第三方 HTTP
  • RestTemplate使用实例
import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.http.*;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.client.RestTemplate;

import java.util.HashMap;
import java.util.Map;

@Controller
@RequestMapping("/RestTemplateTest")
public class RestTemplateTestController {

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/restTemplatelist")
    @ResponseBody
    public String restTemplatelist() {
        Map map = new HashMap<>();
        map.put("imei", "861854049739673");
        // 设置字符编码
        restTemplate.getMessageConverters().set(1,new StringHttpMessageConverter(StandardCharsets.UTF_8));
        HttpHeaders headers = new HttpHeaders();
        headers.set("api-key", "NDbJtnvOZILNxXmLtUYH=a981JQ=");

        String imeiNum = "861854049739673";
        // 注意几个请求参数
        ResponseEntity res =
                restTemplate.exchange("http://api.heclouds.com/devices/getbyimei?imei="+imeiNum+"",
                        HttpMethod.GET, new HttpEntity<>(null, headers), String.class);

//        JSonObject data = JSONObject.parseObject(res.getBody()).getJSonObject("data");
		// 将所获复杂(对象内包对象)json转为Java对象调用。
        All imeiMsg = JSONObject.parseObject(res.getBody(), All.class);
        return imeiMsg.getData().getOnline();

    }

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
2 复杂(对象内包对象)json转为Java对象
  • json字符串示例
{
    "errno": 0,
    "error": "succ", 
    "data": { 
      	 "create_time": "2021-07-05 15:08:37", 
     	 "online": false,
     	 "id": "742851839", 
     	 "observe_status": false, 
    	 "title": "861854049739673" 
    }
}
  • 实体类整合
    • 使用继承方法,避免嵌套,产生静态及内部的歧义。
  1. Msg
public class Msg {
    String errno;
    String error;
    public Msg(String errno, String error) {
        this.errno = errno;
        this.error = error;
    }
    public String getErrno() { return errno; }
    public void setErrno(String errno) { this.errno = errno; }
    public String getError() { return error; }
    public void setError(String error) { this.error = error; }
}
  1. ItemData
package com.shylFm.web.controller.httpConnection;
public class ItemData{
    String create_time;
    String online;
    String id;
    String observe_status;
    String title;
    public String getCreate_time() { return create_time; }
    public void setCreate_time(String create_time) { this.create_time = create_time; }
    public String getOnline() { return online; }
    public void setOnline(String online) { this.online = online; }
    public String getId() { return id; }
    public void setId(String id) { this.id = id; }
    public String getObserve_status() { return observe_status; }
    public void setObserve_status(String observe_status) { this.observe_status = observe_status; }
    public String getTitle() { return title; }
    public void setTitle(String title) { this.title = title; }
}
  1. All
public class All extends Msg{
    private ItemData data;
    public All(String errno, String error, ItemData data) {
        super(errno, error);
        this.data = data;
    }
    public ItemData getData() { return data; }
    public void setData(ItemData data) { this.data = data; }
}
  • 复杂(对象内包对象)json转为Java对象调用实例
import com.alibaba.fastjson.JSONObject;

public class test {
    public static void main(String[] args) {
        String str = "{"errno":0,"error":"succ","data":{"create_time":"2021-07-05 15:08:37","online":false,"id":"742851839","observe_status":false,"title":"861854049739673"}}";
        All all = JSONObject.parseObject(str, All.class);
        System.out.println(all.getData().getId());
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/271372.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号