首页 > 解决方案 > Java中的Gson Json解析

问题描述

我想解析 json 列表。我用过springboot项目,数据库是H2。数据库包含很少的数据。

我已经通过 @getmapping 函数成功显示了 json 数据。代码如下,

File-----> ProductController.Java 
@GetMapping("/products_from_db")
        public  List<Product> getProducts_from_db() { 
            return productservice.findAll() ;
        } 

第二个文件如下。

File ----> Product.java

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
//@ToString
@Entity
public class Product {

    @Id
    @GeneratedValue
    private Integer id;
    private String name;
    private int price;

    @Override
    public String toString() {
        return "Product{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", price=" + price +
                '}';
    }

输出:

[{
    "id": 1,
    "name": "Mango",
    "price": 98
}, {
    "id": 2,
    "name": "Strawberry",
    "price": 92
}, {
    "id": 3,
    "name": "Cadbury",
    "price": 85
}, {
    "id": 4,
    "name": "yash",
    "price": 100
}]

我只想在后端代码中显示名称和价格。

标签: javajsonspring-bootparsinggson

解决方案


不幸的是,Gson 在某些方面并不像 Jackson 那样直接——您可以简单地使用 annotation @JsonIgnore

另一方面,Gson 似乎具有更大的灵活性(尽管有时有点过于技术化。)

在 Gson 的情况下,您有两个主要选择来实现您想要的:

  1. 将您要忽略的字段标记为transient:(private transient String id在这种情况下,您必须确保这不会对您的应用程序造成任何副作用。)
  2. 您可以使用 Gson 非常灵活的功能,尤其是 annotation @Expose。例如:

    @Expose(Serialize = false) 私有字符串 id;

您可以在此处此处找到更多示例和详细信息。

请让我们知道它是否有帮助。


推荐阅读