RestTemplate的使用以及JSON字符串的处理
1.注入Bean对象
//方法一(在任意文件夹写)
@Component
public class BeanRestTemplate {
@Bean
public RestTemplate GCRestTemplate(){
return new RestTemplate();
}
}
//注入Bean对象在需要用的class里面写
@RestController
@RequestMapping("/test")
public class Test {
@Autowired
private BeanRestTemplate beanRestTemplate ;
@GetMapping("/getTest")
public User getTest(String requesetParam){
RestTemplate restTemplate = beanRestTemplate.GCRestTemplate();
}
}
//方法二
@RestController
@RequestMapping("/test")
public class Test {
@Autowired
private RestTemplate restTemplate ;
@GetMapping("/getTest")
public User getTest(String requesetParam){
}
}
2.使用GET、POST、PUT、DELETE请求及入参问题
//入参(入参只要是json格式的字符串就行,我们再接口那端解析。比如说接口那端有个User实体类,并且入参需要传递,成员变量是,id、name、addr。我们便可以用下面的方式弄。)
String jsonstr = "{\"id\":\"1024\",\"name\":\"wwy\",\"addr\":\"安徽.合肥\"}";
//get
@GetMapping("/getgc")
public String getgc(String jsonstr){
RestTemplate gc = gcRestTemplet.gc();
String forObject = gc.getForObject("http://127.0.0.1:10086/test/getTest?jsonstr={jsonstr}", String.class,jsonstr);
System.out.println(forObject);
return forObject;
}
//post
@GetMapping("/postgc")
public String postgc(String jsonstr){
RestTemplate gc = gcRestTemplet.gc();
String forObject = gc.postForObject("http://127.0.0.1:10086/test/postTest?jsonstr={jsonstr}","",String.class,jsonstr);
System.out.println(forObject);
return forObject;
}
//put
@GetMapping("/putgc")
public String putgc(String jsonstr){
RestTemplate gc = gcRestTemplet.gc();
try {
gc.put("http://127.0.0.1:10086/test/putTest?jsonstr={jsonstr}",null,jsonstr);
}catch (Exception e){
e.printStackTrace();
return "调用接口失败";
}
return "修改成功!";
}
//delete
@GetMapping("/deletegc")
public String deletegc(String jsonstr){
RestTemplate gc = gcRestTemplet.gc();
try {
gc.delete("http://127.0.0.1:10086/test/deletTest?jsonstr={jsonstr}",jsonstr);
}catch (Exception e){
e.printStackTrace();
return "调用接口失败";
}
return "删除成功!";
}
3.JSON字符串转实体类
@GetMapping("/getTest")
public User getTest(String requesetParam){
JSONObject parse = (JSONObject) JSONObject.parse(requesetParam);
User user = new User(parse.getString("id"),parse.getString("name"),parse.getString("addr"));
return user;
}
注:JSON数组转List
String jsonStr = "[{\"id\":\"1024\",\"name\":\"wwy\",\"addr\":\"安徽.合肥\"},{\"id\":\"1025\",\"name\":\"xxx\",\"addr\":\"北京\"}]";
List<User> users = JSONArray.parseArray(jsonStr, User.class);
JAVA对象转JSON字符串
//单个对象
User user = new User("1024","wwy","安徽.合肥");
String jsonStr = JSON.toJSONString(user);
//list对象
User user1 = new User("1024","wwy","安徽.合肥");
User user2 = new User("1025","xxx","北京");
List< User> userList = new ArrayList<>();
userList.add(user1);
userList.add(user2);
String jsonStr = JSON.toJSONString(userList);
//集合的以此类推
//多层树结构以此类推