这个问题在这里已有答案:
Client client = Client.create();
WebResource webResource = client
.resource("my url");
String name = "adn";
String password = "34";
String authString = name + ":" + password;
String authStringEnc = new BASE64Encoder().encode(authString
.getBytes());
// System.out.println("Base64 encoded auth string: " +
// authStringEnc);
ClientResponse response = webResource.accept("application/json")
.header("Authorization", "Basic " + authStringEnc)
.get(ClientResponse.class);
String output = response.getEntity(String.class);
System.out.println(output);
我得到这样的o / p
{“计数”:[{“college_name”:“GPT,Karimngr”,“college_epass_id”:18}, {“college_name”:“GPT,Dra”,“college_epass_id”:444},
我想将json数据类型转换为java对象,请你建议。
由于您没有指定您使用的确切容器,因此有很多选项,但无论如何您需要创建DTO(数据传输对象类),从JSON获取数据并放入此类,然后放入DB。
最简单的是使用Jackson作为字符串和解析得到响应
在真正的Java Web项目中,通常使用现代Web容器,它可以将这样的JSON转换为您的DTO automatically,所以我建议您阅读容器的文档以便开始
查看Google的Gson:http://code.google.com/p/google-gson/
从他们的网站:
Gson gson = new Gson(); // Or use new GsonBuilder().create();
MyType target2 = gson.fromJson(json, MyType.class); // deserializes json into target2
您只需要使用json字符串中的所有字段创建一个MyType类(当然是重命名的)。如果您喜欢手动执行所有解析(也非常简单),请查看http://www.json.org/并下载Json解析器对象的Java源代码,这可能会让您在执行数组时变得更复杂一些。
看看这个JAX-RS的例子。
JAX-RS是Java内置的编组和UnMarshalling机制。通过添加简单的基于XML的注释,我们可以简单地将JSON或XML请求转换为Java POJO模型和visa -versa。
上面的示例将概述JAX-RS REST Web服务的基本用法。
使用杰克逊
ObjectMapper mapper = new ObjectMapper();
Map<String,Object> map = mapper.readValue(json, Map.class);
你的课程会有些像
public class CollegeList{
@JsonProperty("counts")
public List<College> counts;
}
public class College{
@JsonProperty("college_name") public String college_name;
@JsonProperty("college_epass_id") public int college_epass_id;
}
您可以将json转换为相应的对象
CollegeList colleges = mapper.readValue(jsonString, CollegeList .class);
分享Reference链接了解更多详情。