GraphAdapterBuilder.
@Braj,
workhift - , . , -
.
Workshift.java
public class Workshift {
private final transient Context context;
private final Visit visit;
private String workshift_description;
public Workshift(Context context,String id) {
this.workshift_description=id;
this.context = context;
this.visit = new Visit(this);
}
public String getId() {
return workshift_description;
}
public void setId(String id) {
this.workshift_description = id;
}
public String toString() {
return "[Workshift element => { WD: "+this.workshift_description+", VD : "+this.visit.getVisit_description()+"}";
}
}
Visit.java
public class Visit {
private final Workshift workshift;
public Visit(Workshift ws) {
this.workshift = ws;
}
public String getVisit_description() {
return "visit containing "+ workshift.getId();
}
}
:
GsonBuilder gsonBuilder = new GsonBuilder();
new GraphAdapterBuilder()
.addType(Visit.class)
.addType(Workshift.class)
.registerOn(gsonBuilder);
,
public static void main(String[] args) {
Workshift[] workshifts = new Workshift[10];
for (int i = 0; i < workshifts.length; i++) {
workshifts[i] = new Workshift(new Context(i), "Workshift#"
+ i);
}
System.out.println("Original Workshifts array:");
for (int i = 0; i < workshifts.length; i++) {
System.out.println(workshifts[i]);
}
System.out.println("===================================");
GsonBuilder gsonBuilder = new GsonBuilder();
new GraphAdapterBuilder()
.addType(Visit.class)
.addType(Workshift.class)
.registerOn(gsonBuilder);
Gson gson = gsonBuilder.setPrettyPrinting().create();
String serialized = gson.toJson(workshifts);
Workshift[] w_array = gson.fromJson(serialized, Workshift[].class);
System.out.println("Des-serialized Workshifts array:");
for (int i = 0; i < w_array.length; i++) {
System.out.println(w_array[i]);
}
System.out.println("===================================");
:
Original Workshifts array:
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
===================================
Des-serialized Workshifts array:
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
[Workshift element => { WD: Workshift
===================================
StackOverflow.
:
[
{
"0x1": {
"visit": "0x2",
"workshift_description": "Workshift#0"
},
"0x2": {
"workshift": "0x1"
}
},
{
"0x1": {
"visit": "0x2",
"workshift_description": "Workshift#1"
},
"0x2": {
"workshift": "0x1"
}
},
{
"0x1": {
"visit": "0x2",
"workshift_description": "Workshift#2"
},
"0x2": {
"workshift": "0x1"
}
},
{
"0x1": {
"visit": "0x2",
"workshift_description": "Workshift#3"
},
"0x2": {
"workshift": "0x1"
}
},
{
"0x1": {
"visit": "0x2",
"workshift_description": "Workshift#4"
},
"0x2": {
"workshift": "0x1"
}
},
{
"0x1": {
"visit": "0x2",
"workshift_description": "Workshift#5"
},
"0x2": {
"workshift": "0x1"
}
},
{
"0x1": {
"visit": "0x2",
"workshift_description": "Workshift#6"
},
"0x2": {
"workshift": "0x1"
}
},
{
"0x1": {
"visit": "0x2",
"workshift_description": "Workshift#7"
},
"0x2": {
"workshift": "0x1"
}
},
{
"0x1": {
"visit": "0x2",
"workshift_description": "Workshift#8"
},
"0x2": {
"workshift": "0x1"
}
},
{
"0x1": {
"visit": "0x2",
"workshift_description": "Workshift#9"
},
"0x2": {
"workshift": "0x1"
}
}
]
, Gson , .
, .
. GraphAdapterBuilder.java
private final ConstructorConstructor constructorConstructor = new ConstructorConstructor();
private final ConstructorConstructor constructorConstructor = new ConstructorConstructor(instanceCreators);
. , .