JSON:对象到 JsonString - JsonString 到 X.class 对象

JSON: Object to JsonString - JsonString to X.class Object

我有一个名为 MediaList 的 class,我想将此 class 的值解析为 JSON-String 并向后解析。

public class KeywordList {
       private List<Keyword> keywords = new ArrayList<>();
}

这里是 JSON-String:

{
    "keywords": [
        {
            "id": 12,
            "name": "Thesis",
            "mediaCount": 31
        }, ...
    ]
}

我正在使用 google lib gson,但我只想使用带有 jax-rs 的标准 java 版本,因为我不希望第 3 方工具出现在我的项目中。

JDK 本身不包含 JAX-RS 标准的实现,因此无论如何您都必须使用第三方库。

不幸的是,您必须使用外部库,因为 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