【发布时间】:2019-04-23 15:31:05
【问题描述】:
我有一个这样的 JSON 文件:
{
"Resources": {
"HelloWorldFunction": {
"Type": "AWS::Serverless::Function",
"Properties": {
"Handler": "index.handler",
"Runtime": "nodejs8.10",
"Events": {
"HelloWorldApi": {
"Type": "Api",
"Properties": {
"Path": "/",
"Method": "GET"
}
}
},
"Policies": [
{
"SNSPublishMessagePolicy": {
"TopicName": {
"Fn::GetAtt": [
"HelloWorldTopic",
"TopicName"
]
}
}
}
],
"Environment": {
"Variables": {
"SNS_TOPIC_ARN": {
"Ref": "HelloWorldTopic"
}
}
},
"CodeUri": "nothing"
}
},
"HelloWorldTopic": {
"Type": "AWS::SNS::Topic",
"Properties": {
"Subscription": [
{
"Endpoint": "nothing",
"Protocol": "email"
}
]
}
}
}
}
我正在使用 Jackson YAMLFactory 来解析与此 JSON 等效的 YAML 文件。如何以将“资源”中的所有内容存储在单个字符串中的方式解析它? (我想将其作为单独的 YAML/JSON 保存以供进一步分析)
【问题讨论】:
-
你的意思是像
"Resources": "{\"HelloWorldFunction\": {..."这样的东西吗? -
最容易实现的解决方案可能是将对象重新序列化为 JSON。
-
@Thomas 完全正确。
-
正如 Aaron 建议的那样,我会尝试解析对象,将
Resources的值重新序列化为 Json,将值设置为该字符串(它可以像带有键"Resources"的映射一样简单并且 json 是值)并重新序列化它。