Len*_*Boy 1 java json jax-rs java-ee-7
我有一个被调用的类MediaList,我想用JSON-String和向后解析这个类的值.
public class KeywordList {
private List<Keyword> keywords = new ArrayList<>();
}
Run Code Online (Sandbox Code Playgroud)
这里是JSON-String:
{
"keywords": [
{
"id": 12,
"name": "Thesis",
"mediaCount": 31
}, ...
]
}
Run Code Online (Sandbox Code Playgroud)
我正在使用谷歌lib gson,但我只是想使用标准的java版本与jax-rs,因为我不希望第三方工具在我的项目中.
不幸的是你必须使用外部库,因为Java默认不能这样做.
虽然这可能会改变,Java 9但从变化看,我没有看到JSON库中的构建.我听说但我没有在里面看到它.
您可以在这里看到Java 9的所有新功能.
您将找到您可能需要的库以及此处的教程
直到它存在,我们有惊人的杰克逊图书馆:
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);
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)
在哪里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
}
Run Code Online (Sandbox Code Playgroud)
在这里完成教程