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

时间:2018-08-24 05:47:45

标签: 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.writeValueAsString(disk);
   //SaveToDatabase(json);
}

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

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

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

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

1 个答案:

答案 0 :(得分:0)

  

除上面三个字段外,没有其他任何字段。我也尝试使用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);
}