· 7 years ago · Nov 20, 2018, 02:42 AM
1[{
2 "job": {
3 "jobName": "Flight_Test_8",
4 "fields": {
5 "jobGroupName": "ObjectUploader",
6 "jobTemplateLibraryName": "Object_Mover_Workflows",
7 "jobTemplateName": "ObjectUploader",
8 "jobArgs": {
9 "ObjectUploader.Source.SourceAgent": "sig_NoWhere_corxf_ny!9",
10 "ObjectUploader.Source.Data": "<siglist type="filedir"><el v="\\is-us-sec01-smb.com\mxrepository\test\TEMP_test" t="d"></el></siglist>",
11 "ObjectUploader.Target.TargetAgent": "sig-dev-lnx-01.NOWHWERE.com",
12 "ObjectUploader.Target.TargetObjectStorage": "{"aws-s3-storage": {"bucket": "flight-gateway-test","subfolder": "","access-key": "AKIAJ6EPASSWORDV6TLPYV","secret-key":"eklmmlevkqfvcuPASSWORDtpmam","id": 28716,"name": "S3 AWS East"}",
13 "ObjectUploader.Schedule._sp_frequency": "once"
14 }
15 }
16 }
17}
18
19"ObjectUploader.Target.TargetObjectStorage": "{"aws-s3-storage": {"bucket": "flight-gateway-test","subfolder": "","access-key": "AKIAJ6EPASSWORDV6TLPYV","secret-key":"eklmmlevkqfvcuPASSWORDtpmam","id": 28716,"name": "S3 AWS East"}"
20
21[{
22"job": {
23 "jobName": "Flight_Test",
24 "fields": {
25 "jobGroupName": "ObjectUploader",
26 "jobTemplateLibraryName": "Object_Mover_Workflows",
27 "jobTemplateName": "ObjectUploader",
28 "jobArgs": {
29 "ObjectUploader.Source.SourceAgent": "sig_windows",
30 "ObjectUploader.Source.Data": "<siglist type="filedir"><el v="\\is-us-se01.com\repo\test\test" t="d"></el></siglist>",
31 "ObjectUploader.Target.TargetAgent": "sig-dev.com",
32 "ObjectUploader.Target.TargetObjectStorage": {
33 "aws-s3-storage-access": {
34 "BucketName": "flight-test",
35 "SubFolder": "TestFolder",
36 "AccessKey": "PASSWORD",
37 "SecretKey": "PASSWORD",
38 "ProfileName": null,
39 "BucketId": 28716
40 }
41 },
42 "ObjectUploader.Schedule._sp_frequency": "none"
43 }
44 }
45}
46
47"ObjectUploader.Target.TargetObjectStorage": "{"aws-s3-storage": {"bucket": "flight-gateway-test","subfolder": "","access-key": "AKIAJ6EPASSWORDV6TLPYV","secret-key":"eklmmlevkqfvcuPASSWORDtpmam","id": 28716,"name": "S3 AWS East"}"
48
49private class StringObjectPropertyConverter<T> : JsonConverter
50{
51 public override bool CanConvert(Type objectType)
52 {
53 return typeof(T) == objectType;
54 }
55
56 public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
57 {
58 if (reader.TokenType != JsonToken.String)
59 {
60 throw new Exception("Expected string");
61 }
62 var serialized = reader.Value.ToString();
63 using (TextReader tr = new StringReader(serialized))
64 {
65 if (existingValue == null)
66 {
67 existingValue = serializer.Deserialize(tr, objectType);
68 }
69 else
70 {
71 serializer.Populate(tr, existingValue);
72 }
73 }
74 return existingValue;
75 }
76
77 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
78 {
79 StringBuilder sb = new StringBuilder();
80 using (TextWriter tw = new StringWriter(sb))
81 {
82 serializer.Serialize(tw, value);
83 }
84 serializer.Serialize(writer, sb.ToString());
85 }
86}
87
88public class Person
89{
90 public string Name { get; set; }
91 public string Gender { get; set; }
92}
93
94public class Test
95{
96 [JsonConverter(typeof(StringObjectPropertyConverter<Person>))]
97 public Person Person { get; set; }
98}
99
100var testObj = new Test()
101{
102 Person = new Person() { Name = "John", Gender = "Male" }
103};
104var serialized = Newtonsoft.Json.JsonConvert.SerializeObject(testObj);
105
106{
107 "Person": "{"Name":"John","Gender":"Male"}"
108}