我有一个名为MediaList
的类,我想用JSON-String和向后的值解析这个类。
public class KeywordList {
private List<Keyword> keywords = new ArrayList<>();
}
这里是JSON-String:
{
"keywords": [
{
"id": 12,
"name": "Thesis",
"mediaCount": 31
}, ...
]
}
我正在使用google lib gson ,但我只是想使用标准的java版本和jax-rs,因为我不希望第三方工具出现在我的项目中。
答案 0 :(得分:5)
不幸的是你必须使用外部库,因为Java默认情况下不能这样做。
虽然这可能会随着Java 9
而改变,但从变化来看,我还没有在JSON库中看到构建内容。我听说但我还没有在里面看到它。
您可以看到here Java 9的所有新功能。
您将找到可能需要的库以及教程here
在它存在之前,我们拥有了令人惊叹的Jackson图书馆:
1.1将Java对象转换为JSON,writeValue(...)
ObjectMapper mapper = new ObjectMapper();
Staff obj = new Staff();
//Object to JSON in file
mapper.writeValue(new File("c:\\file.json"), obj);
//Object to JSON in String
String jsonInString = mapper.writeValueAsString(obj);
1.2将JSON转换为Java对象,readValue(...)
ObjectMapper mapper = new ObjectMapper();
String jsonInString = "{'name' : 'mkyong'}";
//JSON from file to Object
Staff obj = mapper.readValue(new File("c:\\file.json"), Staff.class);
//JSON from URL to Object
Staff obj = mapper.readValue(new URL("http://mkyong.com/api/staff.json"), Staff.class);
//JSON from String to Object
Staff obj = mapper.readValue(jsonInString, Staff.class);
Staff
的位置:
import java.math.BigDecimal; import java.util.List;
public class Staff {
private String name;
private int age;
private String position;
private BigDecimal salary;
private List<String> skills;
//getters and setters
}
完成教程here
答案 1 :(得分:1)
JDK本身并不包含JAX-RS标准的实现,因此您无论如何都必须使用第三方库。