Java如何从http响应中检索特定字段



我正试图通过将响应转换为json,然后找到它的归档形式来做到这一点。

但我既不知道如何将其转换为json,也不知道如何遍历json。

@POST
@Path("/custoemrs")
@Produces({ MediaType.APPLICATION_JSON })
Response createCustomer(Customer customer);

将有一个id字段,我想提取。

有太多的答案在那里,我试了一些,但没有一个是有效的。

我想用jackson来处理json文件,我用的是resteasy客户端。

我使用的响应是javax.ws.rs.core。回复,请基于此回复

我看到很多人说这样的话

EntityUtils.toString(entity)

但是我甚至不能解析entityutil…

虽然我不确定你的Customer对象看起来像什么,但下面可能对你有帮助:

String customer = EntityUtils.toString(entity);  // returns your customer in String format.
ObjectMapper mapper = new ObjectMapper();  // this is com.fasterxml.jackson.databind.ObjectMapper class
HashMap<?, ?> map = mapper.readValue(customer, HashMap.class);  
System.out.println(map.get("id")); // extracting id field.

ObjectMapper是Jackson的核心类,使用它。不需要将任何内容转换为String, Jackson可以直接从HTTP输入流中读取。

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.io.InputStream;
public class ParseJSON {
public static void main(String[] args) throws IOException {
InputStream streamFromServer = streamFromServer; //Wherever this comes from
final JsonNode jsonNode = new ObjectMapper().readTree( streamFromServer );
final String yourValue = jsonNode.at( "/path/to/your/value" ).asText();
}
}

最新更新