【发布时间】:2018-11-20 02:05:22
【问题描述】:
我有 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 的这个特定部分转换为带有转义字符的字符串,如下所示:
"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# 是否有一些功能可以为我提供所需的结果。
【问题讨论】:
标签: c# json serialization json.net