在 Orchard Workflow 中的 WebRequest Activity 中更正 JSON 正文请求的字符串格式?
Correct JSON string format for the body request in a WebRequest Activity inside of a Orchard Workflow?
我正在尝试在 WebRequest Activity
中制作一个 POST,但是如果我 select JSON 格式:
,正文总是空的
我已经尝试过转义和取消转义字符,有和没有引号和空格等:
{\"value\": [{\"@search.action\": \"delete\",\"id\": \"abc-008\"}]}
和
{value:[{@search.action: delete,id: abc-008}]}
但是formValues
总是空的:
var formValues = activityContext.GetState<string>("FormValues") ?? "";
如果我将 select Key/Value 作为格式,请求工作正常,但我需要 Json。
编辑: 应该补充一点,我尝试了有效的 Json 格式(JsonLint)加上我给出的示例,有无空格并使用' 而不是 " 但它仍然是空的。
给定的两种 Json 格式均无效。您尝试过简单格式吗?
{ "value": [{ "@search.action": "delete", "id": "abc - 008" }] }
快速修复:
(( "value": [(( "@search.action": "delete", "id": "abc - 008" ))] ))
说明:这实际上是 Orchard 在工作流中处理令牌的方式的尴尬副作用。带一点盐,因为我记性不好,但我认为它是这样的。因此,在将数据发送到各个工作流活动之前,工作流模块会执行存储的令牌。这意味着你存储的所有 JSON 都被丢弃了,因为 Orchard 认为它是一个令牌(Orchard 令牌的格式如下:{Content.Body} 等)并尝试执行它。我在尝试在工作流 activity 中存储复杂对象时发现了这一点,并且不得不破解这个问题。我打算将其报告为一个问题,但我想我忘记了(我的错),但看到这让我觉得这真的是一个错误。那么为什么上面的工作?一些自私的天才清楚地 运行 解决了这个问题,并用这条 hack 行更新了代码:
var json = formValues.Replace("((", "{").Replace("))", "}");
然后离开UI说:
For JSon, enter a valid JSon string
巨大的失败。
为了改正我之前的懒惰,我为此创建了两个问题。 https://github.com/OrchardCMS/Orchard/issues/7760 https://github.com/OrchardCMS/Orchard/issues/7759
我正在尝试在 WebRequest Activity
中制作一个 POST,但是如果我 select JSON 格式:
我已经尝试过转义和取消转义字符,有和没有引号和空格等:
{\"value\": [{\"@search.action\": \"delete\",\"id\": \"abc-008\"}]}
和
{value:[{@search.action: delete,id: abc-008}]}
但是formValues
总是空的:
var formValues = activityContext.GetState<string>("FormValues") ?? "";
如果我将 select Key/Value 作为格式,请求工作正常,但我需要 Json。
编辑: 应该补充一点,我尝试了有效的 Json 格式(JsonLint)加上我给出的示例,有无空格并使用' 而不是 " 但它仍然是空的。
给定的两种 Json 格式均无效。您尝试过简单格式吗?
{ "value": [{ "@search.action": "delete", "id": "abc - 008" }] }
快速修复:
(( "value": [(( "@search.action": "delete", "id": "abc - 008" ))] ))
说明:这实际上是 Orchard 在工作流中处理令牌的方式的尴尬副作用。带一点盐,因为我记性不好,但我认为它是这样的。因此,在将数据发送到各个工作流活动之前,工作流模块会执行存储的令牌。这意味着你存储的所有 JSON 都被丢弃了,因为 Orchard 认为它是一个令牌(Orchard 令牌的格式如下:{Content.Body} 等)并尝试执行它。我在尝试在工作流 activity 中存储复杂对象时发现了这一点,并且不得不破解这个问题。我打算将其报告为一个问题,但我想我忘记了(我的错),但看到这让我觉得这真的是一个错误。那么为什么上面的工作?一些自私的天才清楚地 运行 解决了这个问题,并用这条 hack 行更新了代码:
var json = formValues.Replace("((", "{").Replace("))", "}");
然后离开UI说:
For JSon, enter a valid JSon string
巨大的失败。
为了改正我之前的懒惰,我为此创建了两个问题。 https://github.com/OrchardCMS/Orchard/issues/7760 https://github.com/OrchardCMS/Orchard/issues/7759