首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JSONata:测试JSON值数据类型的方法或函数

JSONata:测试JSON值数据类型的方法或函数
EN

Stack Overflow用户
提问于 2018-04-08 06:20:58
回答 4查看 1.5K关注 0票数 3

JSONata提供了条件表达式和谓词,可用于从JSON树中选择值。

但是,我还没有找到一种方法来测试JSON值的数据类型。

例如,给定数组:

代码语言:javascript
运行
复制
    [null, true, false, 1, 2.3, "a", ["x"], {}, {"y" : "z}]

我只想提取数值。

代码语言:javascript
运行
复制
    [1, 2.3]

问:在JSONata查询中,如何测试值的JSON数据类型(null、布尔值、数字、字符串、数组、对象)?

EN

回答 4

Stack Overflow用户

发布于 2018-04-18 21:22:53

目前还没有办法在JSONata中做到这一点。不过,值得一提的是增强请求。

票数 2
EN

Stack Overflow用户

发布于 2019-04-22 17:09:33

哇,今天发现了这个很酷的JSONata。这是我的尝试:

http://try.jsonata.org/

代码语言:javascript
运行
复制
 [null, true, false, 1, 2.3, "a", ["x"], {}, {"y" : "z"}]
代码语言:javascript
运行
复制
*[$ ~> /^[0-9\.]{1,}$/m]
票数 2
EN

Stack Overflow用户

发布于 2020-02-17 20:01:07

JSONata提供了$type-method来检查JSON值的数据类型。例如。以下代码片段将以https://try.jsonata.org格式返回发票示例数据中的值的数据类型。

代码语言:javascript
运行
复制
Account.Order.Product.{
    "priceType": $type(Price),
    "productNameType": $type($.'Product Name'),
    "descriptionType": $type(Description)
}

结果是:

代码语言:javascript
运行
复制
[
  {
    "priceType": "number",
    "productNameType": "string",
    "descriptionType": "object"
  },
  {
    "priceType": "number",
    "productNameType": "string",
    "descriptionType": "object"
  },
  {
    "priceType": "number",
    "productNameType": "string",
    "descriptionType": "object"
  },
  {
    "priceType": "number",
    "productNameType": "string",
    "descriptionType": "object"
  }
]

通过将示例JSON中的PriceProduct Name的值更改为null,该特定对象的结果将更改为:

代码语言:javascript
运行
复制
{
    "priceType": "null",
    "productNameType": "null",
    "descriptionType": "object"
},

可以检查“null”、“number”、“string”、“array”、“object”、“boolean”。

出于我的考虑,我使用它在将日期转换为毫秒时检查空值:

代码语言:javascript
运行
复制
'enddate': $type($v.enddate) = 'null' ? null : $toMillis($v.enddate),
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49712517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档