当前位置: 首页 > 知识库问答 >
问题:

节点Json格式验证程序

皇甫树
2023-03-14

我在服务器端有几个问题。

我有50多个API。

需要检查每一个API(GET, POST)方法下面的东西。

  1. 验证输入是否为有效的json

例如1:

{
        "name": "<city name1>",
        "status": 1,
        "id" : 3,
        "code" : 5,
        "abcd" : "44",
      ---------------
        ------------
}

在上面的输入中,我需要检查几个关键字是手动的。例如:名称、代码

例2:

{
    "country": [
        {
            "state": [
                {
                    "name": "<city name1>",
                    "status": 1
                }, {
                    "name": "<city name2>",
                    "status": 2
                }, {
                    "name": "<city name3>",
                    "status": 3
                }
            ],
            "name": "<state Name1>"
        }, {
            "state": [
                {
                    "name": "<city name1>",
                    "status": 1
                }, {
                    "name": "<city name2>",
                    "status": 2
                }, {
                    "name": "<city name3>",
                    "status": 3
                }
            ],
            "name": "<state Name2>"
        }
    ]
}

在上面的例子中,我需要检查州和城市

我检查了包裹,但没有找到适合我的。

是否有用于检查json验证的包?

共有2个答案

邹学民
2023-03-14

如果你需要,请尝试这个解决方案https://github.com/askucher/ftjs.

npm安装ftjs

您可以定义类型定义文件(示例)

#SimpleTypes

String         : /.?/

Integer        : Global.Integer

Int            : Integer

Boolean        : Global.Boolean

Bool           : Boolean

Double         : Global.Double

Numeric        : Double | Integer

Null           : Global.Null

Undefined      : Global.Undefined

Email          : /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i

Strings        : [String]

#TypeExtensions

String...
Min min        : /^.{#{min},}$/
Max max        : /^.{,#{max}}$/
Range min max  : /^.{#{min},#{max}}$/

Integer...
Min min        : @ >= min
Max max        : @ <= max


#Enums

Status         : "active" | "inactive"

Missing        : Null | Undefined


#ComplexTypes

User
------------
email          : Email
picture        : String
firstname      : String Range(5,20)
lastname       : String Min(5) Max(20)
status         : Status
bio            : String | Missing
tags           : [String]
沈成天
2023-03-14

我使用验证器。它有许多功能,如电子邮件、语音等。。。

它还支持消毒。样品和测试在回购。

若要检查密钥是否存在,可以使用标准的hasOwnProperty

检查json对象中是否存在密钥

这些选项将是快速的,并提供了非常具体的定制检查和更好的错误信息反馈给消费者的能力。

另一个选项是json模式。简单地检查代码(如上)可能会更快,但使用json模式,您可以在api中创建公共代码,为每个api加载模式文件,从而减少代码。

一个示例lib。

https://www.npmjs.com/package/jsonschema

因此,这是一种代码、性能以及检查和错误消息的自定义程度之间的平衡。

 类似资料:
  • SCS English Version 子链是MOAC区块链中非常重要的一个模块。其主要目的在于分流母链中的业务逻辑,把一些比较繁琐的业务操作放在子链中执行。 子链由合约节点(Smart Contract Server - SCS)节点组成,必须部署在母链Vnode上。 子链支持分片,每个分片都能独立完成业务逻辑。 子链中的节点随机组合,支持动态增减。 同时,在主链上,我们增加了代理的Vnode节

  • 我有一个用例,我将把一个json-schema作为输入,验证它,然后保存在我的系统中。稍后,我将获取json数据,我需要使用上面提到的json-schema来验证这些数据。给定这个场景,我需要执行两个级别的验证: 我使用的是json-schema-validator jar,只能找到第二级验证,在文档中找不到json-schema验证。例如:假设我们有以下示例json-schema:

  • 我需要为我的输入自动创建每个4个数字的空间。这是我的代码: 在这里,我只能键入数字。我需要以这种格式输入卡号1111 2222 3333 4444。自动创建空间,每个4个数字

  • 问题内容: 我正在创建一个登录身份验证页面,用户将在其中输入活动目录的用户名和密码,并使用NodeJS进行检查,以查看其是否有效,但是我一直在获取 要么 当我尝试搜索用户名和密码时,我的代码如下: 我正在使用:https : //github.com/jeremycx/node-LDAP,假设用户输入的用户名是hhill 有人对我做错了什么建议吗? 更新 如果有人需要,这是我想出的解决方案,借助以

  • 问题内容: 有没有一种方法可以针对该结构的JSON模式验证JSON结构?我已经查看并发现JSON.Net验证了,但这并不能满足我的要求。 JSON.net可以: 这证明是正确的。 这也证明是真的 仅此验证为假。 理想情况下,我希望它可以验证那里也没有应该存在的字段。 问题答案: 我认为您只需要添加 到您的架构。这将停止提供未知属性。 因此,现在您的结果将是:-正确,错误,错误 测试代码… 输出:-

  • 这是要根据模式验证的JSON。 问题是,如果我们传递了错误的数据,它将正确地验证eid和ename的类型(即整数或字符串)。对于例如: 如果我们为限定传递了错误的类型,那么它将验证为true(即,它不验证限定的类型,可能是因为它是嵌套的)。