【问题标题】:Passing Regex string in JSON body在 JSON 正文中传递正则表达式字符串
【发布时间】:2022-01-24 19:14:48
【问题描述】:

我正在尝试像这样在我的 http 请求的 JSON 正文中发送正则表达式字符串

{
  "pattern":"\b\d{8}\b"
}

但我从服务器收到 400 响应

Unexpected token d in JSON at position xxx

如果我尝试转义 JSON 正文中的“\”,例如

{
  "pattern":"\b\\d{8}\b"
}

服务端没有报错但是服务端收到的请求体不正确

Expectation: 
{
  "pattern":"\b\d{8}\b"
}

Result:
{
  "pattern":"\b\\d{8}\b"
}

任何输入或参考都会有所帮助。

谢谢,

【问题讨论】:

  • {"pattern":"/\\b\\d{8}\\b/"} 可能有用吗?请注意,反斜杠被转义了,我添加了正斜杠以表示它是一个实际的 RegExp
  • 它不起作用,在这种情况下,即使我在服务器端收到的正文也是 {"pattern":"/\\b\\d{8}\\b/"} 而不是 {"pattern":"\b\d{8}\b"}
  • 您可能需要在源服务器上修复它,因为输出不是有效的 JSON。这个{"pattern":"\\b\\d{8}\\b"} 是。

标签: javascript node.js json http postman


【解决方案1】:

您是否尝试以字符串形式发送 首先在请求方

JSON.stringify({ "pattern":"\b\\d{8}\b" })

在控制器端

public class myregex
{
    public string pattern{ get; set; }
}
JsonConvert.DeserializeObject<myregex>(json) 

【讨论】:

    猜你喜欢
    • 2018-04-06
    • 2015-11-16
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多