function UnMarshalFromJson<T>(const AJson: ISuperObject): T; var ctx: TSuperRttiContext; v: TValue; begin Result := Default(T); if not Assigned(AJson) then Exit; ctx := TSuperRttiContext.Create; try if ctx.FromJson(TypeInfo(T), AJson, v) then Result := v.AsType<T>; finally ctx.Free; end; end;
----------------------------------------------
-
function JsonToObject<T>(const AJson: string): T; var Serializer: TJsonSerializer; begin Serializer := TJsonSerializer.Create; try Result := Serializer.Deserialize<T>(AJson); finally FreeAndNil(Serializer); end; end;
function ObjectToJsonString<T>(AObject: T): string; var Serializer: TJsonSerializer; begin Serializer := TJsonSerializer.Create; try Result := Serializer.Serialize<T>(AObject); finally FreeAndNil(Serializer); end; end;
var Women:TWomen; Json:string; begin Women.name:='潘金莲'; Women.age:=18;