从我的REST客户端中,我正在以字符串{"code":"00000","msg":"Success">
的形式击中Web服务并获得响应。现在,我正在以jsonobject的形式转换它,然后可以进一步使用。但是我无法。以下是我正在使用的代码。请指导。
private ResponseEntity<String> test()
{
final String uri = "URL";
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<String>("parameters", headers);
ResponseEntity<String> result = restTemplate.exchange(uri, HttpMethod.GET, entity, String.class);
System.out.println(result);
//This part is not working.
try {
JSONObject arr = new JSONObject((result));
for (int i = 0; i < arr.length(); i++) {
JSONObject abc = arr.getJSONObject(i);
System.out.println("test1 : " + abc.getString("test1"));
System.out.println("test2 : " + abc.getString("test2"));
System.out.println("test3 : " + abc.getString("test3"));
}
} catch (Exception e) {
}
return result;
}
而不是转换为通用jsonobject,您应该创建一个匹配响应的类。
Spring将使用Jackson(幕后(绘制对您的模型类的响应。无需自己转换。
所以说,您创建了一个类
class Response {
String code;
String message:
//Gettes and Setters
}
现在您可以像这样更改代码
ResponseEntity<Response> result = restTemplate.exchange(uri, HttpMethod.GET, entity, Response.class);
现在,如果您使用result.getBody()
,这将提供您的响应对象,您可以使用
一种形式正在使用jsonobject
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
<scope>${scope}</scope>
</dependency>
import org.json.simple.JSONObject;
JSONObject json = new JSONObject();
json.put("key1", value1);
json.put("key2", value2);