Question: Is there a way to specify a default subtype if there is not a 
specific match in the subtypes list?  

I'm new to Jackson and a novice developer, and I'm still struggling a bit 
with the basics of the annotations.  In my use case, the API i'm reading 
from has at least 20 or 30 "Resource Types", and more will be added 
regularly. Currently, I am aware of 3 or 4 types that have unique fields 
and need to be cast to a special subtype for that. However, if it's not one 
of a few special types, then it should just be cast as 
the GenericResource type.  In summary, it's impossible to maintain a 
comprehensive list of the generic subtypes I might get, so I just want to 
maintain the list of exceptional subtypes. 

Here's my example, I'm quite sure the "type = "*"" won't work, but maybe 
there's something similar? 

Also, the example might not even be using the annotations properly. Please 
me correct if wrong.

@JsonSubTypes({
        @JsonSubTypes.Type(value = StorageResource.class, type = 
"Microsoft.Storage/storageAccounts"),
        @JsonSubTypes.Type(value = GenericResource.class, type = "*") })

abstract class Resource {
    public String id
    public String name
    public String type
    public String location
}

public class GenericResource extends Resource {
}

public class StorageResource extends Resource {
    public Sku sku
    public String kind
    public Tags tags
}

Sample JSON: 

{
   "value" : [{
"id" : 
"/subscriptions/98a83e18-54c4-402d-b38c-1d22aaf1cfa8/resourceGroups/NewTestRG/providers/Microsoft.Network/networkInterfaces/temptest425",
"name" : "temptest425",
"type" : "Microsoft.Network/networkInterfaces",
"location" : "westus2"
, {
"id" : 
"/subscriptions/98a83e18-54c4-402d-b38c-1d22aaf1cfa8/resourceGroups/NewTestRG/providers/Microsoft.Storage/storageAccounts/newtestrg731",
"name" : "newtestrg731",
"type" : "Microsoft.Storage/storageAccounts",
"sku" : {
"name" : "Standard_LRS",
"tier" : "Standard"
},
"kind" : "Storage",
"location" : "westus2",
"tags" : {}
}]
}

-- 
You received this message because you are subscribed to the Google Groups 
"jackson-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to