Reputation: 59
How to create json string for the below format
Map<String, Map<String, Map<String ,Map<String, Set<VirtualNE>>>>>
where VirtualNE is a DTO class
public class VirtualNE {
private VirtualNePK primaryKey;
private String status;
private String lockId;
private String frequency1;
private String frequency2;
getter & setter goes here
}
where VirtualNePK as primarykey class nested inside VirtualNE dto class
public class VirtualNePK {
private String pCode;
private String neType;
private String src;
private String destination;
getter & setter goes here
}
Upvotes: 1
Views: 16007
Reputation: 1987
This code will convert your Map
to json string
within provided format:
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson ( map1 );
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class Main
{
public static void main ( String [ ] args )
{
//virtualNE related object
VirtualNePK pk = new VirtualNePK ( );
pk.setDestination ( "destination1" );
pk.setNeType ( "type1" );
pk.setpCode ( "1" );
pk.setSrc ( "source1" );
VirtualNE virtualNE = new VirtualNE ( );
virtualNE.setFrequency1 ( "freq1" );
virtualNE.setFrequency2 ( "freq1" );
virtualNE.setLockId ( "lock1" );
virtualNE.setPrimaryKey ( pk );
virtualNE.setStatus ( "status1" );
//Virtual Ne Set
Set<VirtualNE> virtualNESet = new HashSet<VirtualNE> ( );
virtualNESet.add ( virtualNE );
//set
Map<String,Set<VirtualNE> > map4 = new HashMap<> ( );
map4.put ( "string4" , virtualNESet );
//Map3
Map<String,Map<String, Set<VirtualNE>> > map3 = new HashMap<> ( );
map3.put ( "string3" , map4 );
//Map2
Map< String,Map<String ,Map<String, Set<VirtualNE>>> > map2 = new HashMap<> ( );
map2.put ( "string2" , map3 );
//map1
Map<String, Map<String, Map<String ,Map<String, Set<VirtualNE>>>>> map1 = new HashMap<String, Map<String, Map<String ,Map<String, Set<VirtualNE>>>>> ( );
map1.put ( "string1" , map2 );
//Convert to Json
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson ( map1 );
System.out.println ( json.toString ( ) );
}
}
{
"string1": {
"string2": {
"string3": {
"string4": [
{
"primaryKey": {
"pCode": "1",
"neType": "type1",
"src": "source1",
"destination": "destination1"
},
"status": "status1",
"lockId": "lock1",
"frequency1": "freq1",
"frequency2": "freq1"
}
]
}
}
}
}
Map<String, Map<String, Map<String ,Map<String, Set<VirtualNE>>>>> map = gson.fromJson(json,new TypeToken<Map<String, Map<String, Map<String ,Map<String, Set<VirtualNE>>>>>>(){}.getType ( ) );
System.out.println ( map.toString ( ) );
{string1={string2={string3={string4=[VirtualNE [primaryKey=VirtualNePK [pCode=1, neType=type1, src=source1, destination=destination1], status=status1, lockId=lock1, frequency1=freq1, frequency2=freq1]]}}}}
Upvotes: 2