关于JSON/Gson序列化和反序列化的问题

问题描述 投票:0回答:1

我对 Java 序列化还很陌生,在阅读它时我收集了几个问题。

假设您想要反序列化一个 json 响应,并且该 json 响应有一堆字段(例如 - a、b、c、d、e、f、g、h),但您只需要 a、b、c。您尝试访问的 api 已分页,因此您可以循环遍历它们。您还声明一个元数据类,例如 Sample.java ,这样只包含您想要的字段:

@Data 
@NoArgsConstructor
@AllArgsConstructor

public class Sample {
    private String a;
    private String b;
    private String c;
}

假设您的服务类别执行此操作:

UriComponentsBuilder createBranchUri = UriComponentsBuilder.fromUriString(requestUrl);
try { 
    Gson gson = new Gson(); 
    Type sampleListType = new TypeToken<List<Sample>>() {}.getType(); 
    //loop through the pages and make requests JsonArray sampleLines =      paginatedRequest(restTemplate, createBranchUri, "values"); 
    List<Sample> stashLines = gson.fromJson(sampleLines, sampleListType); 
..........

这是允许的吗?这意味着它会处理序列化而不会出错并正确分配字符串 a、b 和 c 的值吗?或者我们只能通过使用此处描述的排除策略或直接索引到 json 对象来“排除”字段。换句话说 - 当 gson 解析响应时(在本例中:d,e ...),并且它在类型中找不到等效变量时,默认行为是什么? 另外,顺序重要吗?假设映射的顺序是a、b、c、d...... 如果我们交换 Sample 中 a 和 b 的位置会发生什么?

java json request gson json-deserialization
1个回答
0
投票

你能更准确地回答这个问题吗?我不确定你在问什么。

您可以查看此页面并查看是否对您有帮助。 xD

https://www.baeldung.com/gson-deserialization-guide

© www.soinside.com 2019 - 2024. All rights reserved.