首页 > 解决方案 > Azure Java SDK,磁盘对象用json中的一半信息序列化

问题描述

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

PagedList<Disk> diskPagedList =azure.disks().list();
for(Disk disk: diskPagedList)
{
   String json = JsonSerializer.writeValueAsString(disk);
   //SaveToDatabase(json);
}

每个磁盘返回的 json 看起来像

{"attachedToVirtualMachine":false,"inCreateMode":false,"hot":false}

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

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

标签: javaazureazure-resource-groupazure-java-sdk

解决方案


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

其实磁盘就是一个接口。正如您所提到的,您可以尝试使用 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);
}

推荐阅读