java - 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
}]
我只想在后端代码中显示名称和价格。
解决方案
不幸的是,Gson 在某些方面并不像 Jackson 那样直接——您可以简单地使用 annotation @JsonIgnore
。
另一方面,Gson 似乎具有更大的灵活性(尽管有时有点过于技术化。)
在 Gson 的情况下,您有两个主要选择来实现您想要的:
- 将您要忽略的字段标记为
transient
:(private transient String id
在这种情况下,您必须确保这不会对您的应用程序造成任何副作用。) 您可以使用 Gson 非常灵活的功能,尤其是 annotation
@Expose
。例如:@Expose(Serialize = false) 私有字符串 id;
请让我们知道它是否有帮助。
推荐阅读
- javascript - Angular 反应形式的对象
- google-analytics - 嵌入适合公众查看的 API?
- java - 使用递归在给定数组中打印子数组
- android - 安装没有成功。无法安装应用程序
- python - 根据日期获取列表的最后一个唯一元素
- lua - Lua解剖函数定义
- python - django 中基于类的视图上的 login_required 装饰器
- position - Redshift Query Syntax 错误(使用 SQL Workbench):有没有简单的方法可以直接进入错误中提到的“位置”?
- node.js - 项目双嵌套数组mongodb
- events - wxpython GUI 应用程序在操作后未触发事件,如何排除故障?