Azure Java SDK,磁盘对象用json中的一半信息序列化

Azure Java SDK,磁盘对象用json中的一半信息序列化,java,azure,azure-resource-group,azure-java-sdk,Java,Azure,Azure Resource Group,Azure Java Sdk,我正在使用azure java sdk从我的azure帐户收集资产。我希望以json格式存储信息,然后在需要时将json转换回原始对象。但是当我将一个对象序列化为json时,它并没有写入所有属性。例如,我收集磁盘对象作为 PagedList<Disk> diskPagedList =azure.disks().list(); for(Disk disk: diskPagedList) { String json = JsonSerializer.writeValueAsStri

我正在使用azure java sdk从我的azure帐户收集资产。我希望以json格式存储信息,然后在需要时将json转换回原始对象。但是当我将一个对象序列化为json时,它并没有写入所有属性。例如,我收集磁盘对象作为

PagedList<Disk> diskPagedList =azure.disks().list();
for(Disk disk: diskPagedList)
{
   String json = JsonSerializer.writeValueAsString(disk);
   //SaveToDatabase(json);
}
除上述三个字段外,它没有任何字段。我也尝试了disk.internal(),它提供了更多属性,但这些属性也很有限

有没有办法将这个完整的对象转换成json

除上述三个字段外,它没有任何字段。我也尝试了disk.internal(),它提供了更多的属性,但这些属性也是有限的

实际上,磁盘是一个接口。如前所述,您可以尝试使用disk.inner来获取磁盘属性

如果它也是有限的。我建议您创建一个自定义类,以添加所需的其他属性

public class DiskData {
    public DiskInner DiskInner;
    public String Otherproperty;// you want to store
    public String Anotherproperty;// you want to store        
    ...
}
下面是演示代码

DiskData diskData = new DiskData();
for (Disk disk:diskPagedList)
{   
    diskData.DiskInner = disk.inner();
    diskData.Otherproperty= disk.regionName();
        ...
    String json = objectMapper.writeValueAsString(diskData);
}
现在已经实施了最后手段(客户实体)。感谢您的投入。:)
DiskData diskData = new DiskData();
for (Disk disk:diskPagedList)
{   
    diskData.DiskInner = disk.inner();
    diskData.Otherproperty= disk.regionName();
        ...
    String json = objectMapper.writeValueAsString(diskData);
}