我正试图通过将响应转换为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();
}
}