У меня есть JSON, который мне нужно преобразовать в строку, содержащую специальные символы. Вот JSON, который у меня есть:
[{
"job": {
"jobName": "Flight_Test_8",
"fields": {
"jobGroupName": "ObjectUploader",
"jobTemplateLibraryName": "Object_Mover_Workflows",
"jobTemplateName": "ObjectUploader",
"jobArgs": {
"ObjectUploader.Source.SourceAgent": "sig_NoWhere_corxf_ny!9",
"ObjectUploader.Source.Data": "<siglist type=\"filedir\"><el v=\"\\\\is-us-sec01-smb.com\\mxrepository\\test\\TEMP_test\" t=\"d\"></el></siglist>",
"ObjectUploader.Target.TargetAgent": "sig-dev-lnx-01.NOWHWERE.com",
"ObjectUploader.Target.TargetObjectStorage": "{\"aws-s3-storage\": {\"bucket\": \"flight-gateway-test\",\"subfolder\": \"\",\"access-key\": \"AKIAJ6EPASSWORDV6TLPYV\",\"secret-key\":\"eklmmlevkqfvcuPASSWORDtpmam\",\"id\": 28716,\"name\": \"S3 AWS East\"}",
"ObjectUploader.Schedule._sp_frequency": "once"
}
}
}
}
]
Теперь я хочу преобразовать эту конкретную часть JSON в строку с escape-символами следующим образом:
"ObjectUploader.Target.TargetObjectStorage": "{\"aws-s3-storage\": {\"bucket\": \"flight-gateway-test\",\"subfolder\": \"\",\"access-key\": \"AKIAJ6EPASSWORDV6TLPYV\",\"secret-key\":\"eklmmlevkqfvcuPASSWORDtpmam\",\"id\": 28716,\"name\": \"S3 AWS East\"}"
Причина, по которой мне нужно это в строковом формате, заключается в том, что я нацеливаюсь, принимает это таким образом. Когда я делаю JsonConvert.SerializeObject (jobList, Formatting.Indented); вот что я получаю:
[{
"job": {
"jobName": "Flight_Test",
"fields": {
"jobGroupName": "ObjectUploader",
"jobTemplateLibraryName": "Object_Mover_Workflows",
"jobTemplateName": "ObjectUploader",
"jobArgs": {
"ObjectUploader.Source.SourceAgent": "sig_windows",
"ObjectUploader.Source.Data": "<siglist type=\"filedir\"><el v=\"\\\\is-us-se01.com\\repo\\test\\test\" t=\"d\"></el></siglist>",
"ObjectUploader.Target.TargetAgent": "sig-dev.com",
"ObjectUploader.Target.TargetObjectStorage": {
"aws-s3-storage-access": {
"BucketName": "flight-test",
"SubFolder": "TestFolder",
"AccessKey": "PASSWORD",
"SecretKey": "PASSWORD",
"ProfileName": null,
"BucketId": 28716
}
},
"ObjectUploader.Schedule._sp_frequency": "none"
}
}
}
}
]
Как вы можете видеть, ObjectUploader.Target.TargetObjectStorage сериализуется в правильном формате JSON, но API не может разобрать его таким образом, единственным форматом, который принимает API, является JSON с символом новой строки и т. Д.:
"ObjectUploader.Target.TargetObjectStorage": "{\"aws-s3-storage\": {\"bucket\": \"flight-gateway-test\",\"subfolder\": \"\",\"access-key\": \"AKIAJ6EPASSWORDV6TLPYV\",\"secret-key\":\"eklmmlevkqfvcuPASSWORDtpmam\",\"id\": 28716,\"name\": \"S3 AWS East\"}"
Способ получения текущего формата, который мне нужен, - через веб-сайт в Интернете, но мне было интересно, есть ли в C # какая-нибудь функция, которая даст мне нужный мне результат.