【发布时间】:2018-05-10 20:20:15
【问题描述】:
我对执行 JSON 转换很感兴趣,并研究了使用 dotliquid。
为了避免输入 JSON 的 POCO 只是为了能够将其作为变量发送,我想发送反序列化的 JSON。据我了解,我们无法将动态发送到渲染方法,并且 JObject 或 JArray 无法按预期工作。我尝试反序列化到 Dictionary
液体
[
{%- for p in data.names -%}
{
"name" : {{ p.name }}
} {%- unless forloop.Last == true -%},{% endunless %}
{%- endfor -%}
]
C#代码
Template template = Template.Parse(File.ReadAllText("Maps/account.liquid"));
var json = JsonConvert.DeserializeObject<Dictionary<string, object>>(
@"{ ""names"":[{""name"": ""John""},{""name"":""Doe""}] }");
var jsonHash = Hash.FromAnonymousObject(new { Data = json});
输出
[
{
"name" :
},
{
"name" :
}
]
我知道 Microsoft Logic Apps 使用 dotliquid 实现了类似的功能。 https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-enterprise-integration-liquid-transform
有哪些不同的方法?我是否需要将 JObject/JArray 解析为嵌套字典,或者有什么替代方法?
【问题讨论】:
-
嗨 Frederik,我在同一个问题上 A.T.M.尝试了逻辑应用程序,使用该集成帐户太贵了。我尝试了几个库,DotLiquid,Liquid.NET,我仍在研究如何将 json 字符串转换为液体散列,以另一种 json 格式呈现我的数据。我会及时通知你我的发现......或者你已经有了解决方案?
-
嗨,我使用了 dictionary
解决方案,类似于接受的答案中的建议。类似于该问题的第二个答案。不过,很好奇他们是如何在 Logic Apps 中实现它的,因为他们使用的是 dotliquid