java - 如何计算字符串中的特定模式?
问题描述
我们有一些要求有很多实验。我只想计算没有实验。如果它大于某个数字,那么我将阻止这些请求
{
"context": {
"requestId": "",
"locale": "",
"deviceId": "",
"currency": "",
"memberId": 0,
"cmsOrigin":,
"experiments": {
"forceByVariant":,
"forceByExperiment": [
{
"id": "test",
"variant": "A"
}
]
}
}
在这个请求中,我只想检查 forceByExperiment 中有多少id和variant。我曾尝试使用正则表达式,但无法做到。任何人在类似的事情之前都会这样做。
我只是用变体分割字符串并计算它们。不确定好主意,但最终目标是弄清楚该请求有很多实验。
解决方案
使用circe
库和 Scala,这是一个简单的解决方案:
import io.circe._, io.circe.parser._
val jsonString = """{
"context": {
"requestId": "",
"locale": "",
"deviceId": "",
"currency": "",
"memberId": 0,
"cmsOrigin": "foo",
"experiments": {
"forceByVariant": [],
"forceByExperiment": [
{
"id": "test",
"variant": "A"
}
]
}
}
}"""
val parseResult = parse(jsonString)
val nElems = for {
json <- parse(jsonString)
array <- json.hcursor.downField("context").downField("experiments").downField("forceByExperiment").as[Seq[Json]]
} yield array.length
println(nElems) // Right(1)
推荐阅读
- php - Laravel Collection 不会提取价值
- azure-active-directory - DisplayControl - 验证电子邮件未使用 - Azure AD B2C
- python - 在 Python 中循环遍历数据框
- javascript - Angular 11 Mat-table 分页与分组
- ios - 如何获取 AVURLAssett 目标 c 的创建日期和时间
- python - 是否有超对偶数的 numpy 实现?
- json - Dell Boomi:减少电子邮件数量
- node.js - 如何在 Azure 应用服务的 npm 脚本中使用 Node -r 标志
- r - R group_by 一个变量或(不是和)另一个
- php - 创建 S3Client 的 PHP AWS SDK 致命错误