Azure Java SDK,磁盘对象用json中的一半信息序列化
我正在使用azure java sdk从我的azure帐户收集资产。我希望以json格式存储信息,然后在需要时将json转换回原始对象。但是当我将一个对象序列化为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
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);
}