我正在使用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?
答案 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);
}