精华内容
下载资源
问答
  • 在线JSON格式校验网址

    千次阅读 2018-09-20 14:09:01
    推荐个一直在用的json格式化的网址: BeJson :http://www.bejson.com/ 新版本:点击如下按钮进入新版    

    推荐个一直在用的json格式化的网址:

    BeJson :http://www.bejson.com/

    新版本:点击如下按钮进入新版

     

     

    展开全文
  • java 对json 格式做参数格式校验

    千次阅读 2019-06-17 21:59:17
    在接口中,需要对返回的数据进行格式校验,对于不符合要求的返回数据就表示接口数据有变更,对于该接口及时了解到接口参数的变化。所以需要对接口返回的json 字符串进行格式校验。 ps :接口返回参数有两种类型,一...

    需求背景:

        在接口中,需要对返回的数据进行格式校验,对于不符合要求的返回数据就表示接口数据有变更,对于该接口及时了解到接口参数的变化。所以需要对接口返回的json 字符串进行格式校验。

    ps :接口返回参数有两种类型,一个是json 字符,另一种是xml .对应xml格式的数据,按照将xml 改成json 再进行校验。

        为了下次使用方便,特将该实现做出utils 以备下次使用

    实现如下:

    pom.xml 文件

    <dependency>
        <groupId>org.jdom</groupId>
        <artifactId>jdom2</artifactId>
        <version>2.0.6</version>
    </dependency>
    <dependency>
        <groupId>com.github.java-json-tools</groupId>
        <artifactId>json-schema-validator</artifactId>
        <version>2.2.10</version>
    </dependency>  

     

    实现如下:

    import com.alibaba.fastjson.JSONObject;
    import com.fasterxml.jackson.databind.JsonNode;
    import com.github.fge.jackson.JsonLoader;
    import com.github.fge.jsonschema.core.exceptions.ProcessingException;
    import com.github.fge.jsonschema.core.report.ProcessingReport;
    import com.github.fge.jsonschema.main.JsonSchema;
    import com.github.fge.jsonschema.main.JsonSchemaFactory;
    import com.xy.onlineteam.schema.core.XmlUtil;
    import org.jdom2.JDOMException;
    import java.io.IOException;
    /** 
    * Schema校验
    */
    public class SchemaValidater {
    ​
        private final static JsonSchemaFactory factory = JsonSchemaFactory.byDefault();
    ​
        public static boolean validateForJson(String json, String mainSchema) throws IOException {
            JsonNode mainNode = JsonLoader.fromString(mainSchema);
            JsonNode instanceNode = JsonLoader.fromString(json);
            JsonSchema schema = null;
            ProcessingReport processingReport = null;
            try {
                schema = factory.getJsonSchema(mainNode);
                processingReport = schema.validate(instanceNode);
            } catch (ProcessingException e) {
                e.printStackTrace();
            }
            return processingReport.isSuccess();
        }
    ​
        /**
         *
         * @param json  验证的Json
         * @param mainSchema 验证的Schema
         * @return
         * @throws IOException
         * @throws JDOMException
         */
        public static boolean validateForXml(String json, String mainSchema) throws IOException, JDOMException {
            JSONObject jsonObject = XmlUtil.xml2JSON(json);
            return validateForJson(jsonObject.toJSONString(), mainSchema);
        }
    
    
     
    import com.alibaba.fastjson.JSONObject;
    import org.jdom2.Element;
    import org.jdom2.JDOMException;
    import org.jdom2.input.SAXBuilder;
    ​
    import java.io.ByteArrayInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.LinkedList;
    import java.util.List;
    ​
    public class XmlUtil {
    ​
        /**
         * xmlString 转换json
         * @param xmlStr
         * @return
         * @throws JDOMException
         * @throws IOException
         */
        public static JSONObject xml2JSON(String xmlStr) throws JDOMException, IOException {
            byte[] xml = xmlStr.getBytes();
            return xml2JSON(xml);
        }
    ​
        /**
         * xml 转换Json
         *
         * @param xml
         * @return
         * @throws JDOMException
         * @throws IOException
         */
        public static JSONObject xml2JSON(byte[] xml) throws JDOMException, IOException {
            JSONObject json = new JSONObject();
            InputStream is = new ByteArrayInputStream(xml);
            SAXBuilder sb = new SAXBuilder();
            org.jdom2.Document doc = sb.build(is);
            Element root = doc.getRootElement();
            json.put(root.getName(), iterateElement(root));
            return json;
        }
    ​
        private static JSONObject iterateElement(Element element) {
            List node = element.getChildren();
            Element et = null;
            JSONObject obj = new JSONObject();
            List list = null;
            for (int i = 0; i < node.size(); i++) {
                list = new LinkedList();
                et = (Element) node.get(i);
                if (et.getTextTrim().equals("")) {
                    if (et.getChildren().size() == 0)
                        continue;
                    if (obj.containsKey(et.getName())) {
                        list = (List) obj.get(et.getName());
                    }
                    list.add(iterateElement(et));
                    obj.put(et.getName(), list);
                } else {
                    if (obj.containsKey(et.getName())) {
                        list = (List) obj.get(et.getName());
                    }
                    list.add(et.getTextTrim());
                    obj.put(et.getName(), list);
                }
            }
            return obj;
        }
    }
    
    
     

    测试代码:

    ​jsonschema 测试
    public class SchemaValidaterTest {
    ​
        public static void main(String[] args) {
            String scheme = "{\n" +
                    "  \"type\": \"object\",\n" +
                    "  \"properties\": {\n" +
                    "    \"name\": {\n" +
                    "      \"type\": \"string\"\n" +
                    "    },\n" +
                    "    \"userList\": {\n" +
                    "      \"type\": \"array\",\n" +
                    "      \"items\": {\n" +
                    "        \"type\": \"object\",\n" +
                    "        \"properties\": {\n" +
                    "          \"age\": {\n" +
                    "            \"type\": \"string\"\n" +
                    "          },\n" +
                    "          \"name\": {\n" +
                    "            \"type\": \"string\"\n" +
                    "          }\n" +
                    "        },\n" +
                    "        \"required\": [\n" +
                    "          \"age\",\n" +
                    "          \"name\"\n" +
                    "        ]\n" +
                    "      }\n" +
                    "    }\n" +
                    "  },\n" +
                    "  \"required\": [\n" +
                    "    \"name\",\n" +
                    "    \"userList\"\n" +
                    "  ]\n" +
                    "}\n";
    ​
            String json = "{\n" +
                    "  \"name\": \"test\",\n" +
                    "  \"userList\": [\n" +
                    "    {\n" +
                    "      \"age\": \"12\",\n" +
                    "      \"name\": \"hello\"\n" +
                    "    },\n" +
                    "    {\n" +
                    "      \"age\": \"12\"\n" +
                    "    }\n" +
                    "  ]\n" +
                    "}\n";
    ​
            try {
                boolean validate = SchemaValidater.validateForJson(json, scheme);
                System.out.println(validate);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    ​xml测试
    import com.alibaba.fastjson.JSONObject;
    import com.xy.onlineteam.schema.core.XmlUtil;
    import org.jdom2.JDOMException;
    import java.io.IOException;
    public class XmlUtilTest {
        public static void main(String[] args) throws JDOMException, IOException {
            String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><UpdateRecognitionJarRequest><delayend>0</delayend><delaystart>0</delaystart></UpdateRecognitionJarRequest>";
    //        JSONObject json = XmlUtil.xml2JSON(xml.getBytes());
    //        System.out.println(json.toJSONString());
            JSONObject jsonObject = XmlUtil.xml2JSON(xml);
            System.out.println("xml : " + xml);
            System.out.println("json : " + jsonObject.toJSONString());
        }
    }
    

     

    最后说明:

    Schema 校验工具

    SchemaValidater 对外提供两个方法

    1. SchemaValidater.validateForJson 该方法提供 JSON schema 验证

    2. SchemaValidater.validateForXml 该方法提供xml schema 验证。 注意该方法底层是先将xml 转换成json 然后再进行验证。所以入参schema还是Gson格式

    Schema 工具网站参考

    1. 验证Json跟JSON schema网站

    https://www.jsonschemavalidator.net/
    1. xml转换Json 网站

    https://www.sojson.com/json2xml/
    展开全文
  • vue关闭代码格式校验

    千次阅读 2019-11-30 11:33:19
    eslint eslint是一个JavaScript的校验插件 通常用来校验语法或代码的书写风格 有了eslint的检查 代码中的缩进 空格 空白行之类的都会被按照规范检查 但有时我们不希望开启代码校验 ...

    eslint

    eslint是一个JavaScript的校验插件 通常用来校验语法或代码的书写风格 有了eslint的检查 代码中的缩进 空格 空白行之类的都会被按照规范检查 但有时我们不希望开启代码校验

    关闭eslint 代码格式校验

    在build\webpack.base.conf.js中 同时注释一下两段代码
    注释代码一

    const createLintingRule = () => ({
      // test: /\.(js|vue)$/,
      // loader: 'eslint-loader',
      // enforce: 'pre',
      // include: [resolve('src'), resolve('test')],
      // options: {
      //   formatter: require('eslint-friendly-formatter'),
      //   emitWarning: !config.dev.showEslintErrorsInOverlay
      // }
    })
    

    注释代码二

    module: {
      rules: [
        // ...(config.dev.useEslint ? [createLintingRule()] : []),
        {
          test: /\.vue$/,
          loader: 'vue-loader',
          options: vueLoaderConfig
        },
    	...
    },
    
    展开全文
  • python IP格式校验

    千次阅读 2017-06-10 14:35:30
    校验对于web开发同学来说,写代码时是必不可少的。  不管前端有没有做校验,后端还是必须得要做校验。出于安全性考虑,可以有效的防止sql注入。  校验其实是一件很无聊的事情,重复写着代码。所以整理出通用的接口...

        校验对于web开发同学来说,写代码时是必不可少的。

        不管前端有没有做校验,后端还是必须得要做校验。出于安全性考虑,可以有效的防止sql注入。

        校验其实是一件很无聊的事情,重复写着代码。所以整理出通用的接口还是蛮有必要的。今天贴出一版python的IP校验接口,包括IPv4和IPv6的校验


    IPv4:

    def validate_ip(ip_str):
        sep = ip_str.split('.')
        if len(sep) != 4:
            return False
        for i,x in enumerate(sep):
            try:
                int_x = int(x)
                if int_x < 0 or int_x > 255:
                    return False
            except ValueError, e:
                return False
        return True

    IPv4校验较简单,原理如上述代码,以“.”分割一下,然后对每位进行范围校验,不在0~255的就校验失败。


    IPv6:

    IPv6地址大小为128位。首选的 IPv6 地址表示为:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx,其中每个 x 是代表一个 4 位的十六进制数字。

    v6相比较v4的话,稍微复杂。首先,我们要明白IPv6有哪些格式都属于合法的:

    1. 正常情况

    FFFF:0000:0000:FFFF:FFFF:FFFF:FFFF;FFFF

    2.前导0省略:

    如:

    FFFF:0000:0000:0FFF:FFFF:FFFF:FFFF;FFFF,可以写成:

    FFFF:0:0:FFF:FFFF:FFFF:FFFF;FFFF

    3.双冒号形式:

    如:

    FFFF:0000:0000:0FFF:FFFF:FFFF:FFFF;FFFF,可以写成:

    FFFF::0FFF:FFFF:FFFF:FFFF;FFFF

    4.兼容IPv4的IPv6格式:

    如:

    FFFF:0000:0000:0FFF:FFFF:FFFF:192.168.0.1也是合法的。


    有了上面这些合法的格式,贴上代码:

    # -*- coding:utf-8 -*-
    import os
    import sys
    import re
    
    def validate_ip(ip_str):
        '''
        Validate a hexidecimal IPv6 ip address.
        :param ip_str: String to validate as a hexidecimal IPv6 ip address.
        :type ip_str: str
        :returns: ``True`` if a valid hexidecimal IPv6 ip address,
                  ``False`` otherwise.
        :raises: TypeError
        '''
        #:Regex for validating an IPv6 in hex notation
        # _HEX_RE_1 = re.compile(r'^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$')
        _HEX_RE = re.compile(r'^:{0,1}([0-9a-fA-F]{0,4}:){0,7}[0-9a-fA-F]{0,4}:{0,1}$')
        # _HEX_RE = re.compile(r'^([0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{0,4}:{0,1}$')
    
        #:Regex for validating an IPv6 in dotted-quad notation
        _DOTTED_QUAD_RE = re.compile(r'^:{0,1}([0-9a-fA-F]{0,4}:){2,6}(\d{1,3}\.){3}\d{1,3}$')
        if _HEX_RE.match(ip_str):
            if ':::' in ip_str:
                return False
            if '::' not in ip_str:
                halves = ip_str.split(':')
                return len(halves) == 8 and halves[0] != '' and halves[-1] != ''
            halves = ip_str.split('::')
            if len(halves) != 2:
                return False
            if halves[0] != '' and halves[0][0] == ':':
                return False
            if halves[-1] != '' and halves[-1][-1] == ':':
                return False
            return True
    
        if _DOTTED_QUAD_RE.match(ip_str):
            if ':::' in ip_str:
                return False
            if '::' not in ip_str:
                halves = ip_str.split(':')
                return len(halves) == 7 and halves[0] != ''
            halves = ip_str.split('::')
            if len(halves) > 2:
                return False
            hextets = ip_str.split(':')
            quads = hextets[-1].split('.')
            for q in quads:
                if int(q) > 255 or int(q) < 0:
                    return False
            return True
        return False


    原理也比较简单,先利用正则匹配,然后在考虑其他特殊情况。


    结束!!!


    展开全文
  • BigDecimal 校验格式

    万次阅读 2019-07-29 21:31:32
    【前言】 最近收到一个需求,在管理后台对系统中的金额进行操作时,对操作的金额需要进行相关校验,如果不校验,在进行相关的计算...【BigDecimal 校验格式】 一、业务需求 前端接收到金额传给后端时需要对金...
  • 1.SpringBoot 导入EXCEL时格式校验 1.做EXCEL导入的时候,对于文件格式校验 //前端将文件上传到服务器,前端返回给我的文件地址 String filePath = jsonObject.getString("filePath"); //将得到的文件地址字符串截取...
  • 1 值校验 1.1 @Null注解 被注解的元素必须为null @Null(message = "必须为null") private String username; 1.2@NotNull注解 被注解的元素必须不为null @NotNull(message = "必须不为null") private String ...
  • IP格式校验

    2019-02-27 16:57:08
    function IPValidation(ip){   var re = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5... alert('IP格式错误,范例:192.168.255.255');  } }  
  • 大陆身份证号码格式校验

    千次阅读 2018-11-12 21:10:03
    我国身份证号码的构成规则 1.18位身份证号码 第1~2位数字:所在省(直辖市、自治区)的代码; 第3~4位:所在地级市(自治州)的代码;...第18位:校验位,用来校验身份证号码的正确性。一般是0~9其中的一个数字,...
  • 但Java提供@Constraint及ConstraintValidator类方便我们自己定义特殊格式字段校验,例如定义不同时间格式校验: import javax.validation.Constraint; import javax.validation.ConstraintValidator; import javax....
  • 各类证件类型的格式校验

    万次阅读 2018-01-23 14:06:57
    1、身份证校验 function isCardID(sId) { var that = this; var aCity = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海",
  • 在web开发中,肯定会有一些图片上传的功能,如果仅仅是通过页面端进行控制是远远不够的,完全可以直接调用后台的接口,将一些病毒文件上传到服务器,如果不进行校验,后果不堪设想! 判断上传的是否是图片 通过后缀...
  • input 金额格式校验

    千次阅读 2018-10-19 10:28:59
    $.alertView('金额格式有误,小数点后只能保留两位');this.value=''; }" /> <!-- ( ! /^d*(?:.d{0,2})?$/.test(this.value)){alert('只能输入数字,小数点后只能保留两位');this.value='';}" /> --> ...
  • json格式校验工具

    千次阅读 2018-04-24 17:55:04
    Json格式校验
  • swift 手机号格式校验

    千次阅读 2018-05-16 17:13:19
    最近联通和电信,新增了 199、166等号段。...作为iOS开发,审核发版一次需要一些时间。而且最近风声紧,理财类APP已经半年都不让更新了。针对上面的问题,我们决定对手机号做如下调整:对... 之前的手机号校验代码(太low
  • Atom 编辑器安装 linter-eslint 插件,并配置使其支持 vue 文件中的 js 格式校验前言之前我的博文写了一系列的vue教程。但是关闭了其中的代码校验,这一直让我很不爽。因为我希望自己写的代码是完美的。因此,后来我...
  • JS日期格式校验/判断

    千次阅读 2019-05-29 15:39:49
    function checkDate(dateStr){ var a = /^(\d{4})-(\d{2})-(\d{2})$/ if (!a.test(dateStr)) { return false }else{ return true;... alert("格式不正确!"); }else{ alert("格式正确!"); }  
  •     element 表单里非必填的字段需要校验格式时使用 注意     rules 里面非必填字段不要加上 required 属性 <template> <div class="container"> <el-form ref="elForm" :inline="true" :...
  • 【php】密码正则格式校验

    千次阅读 2019-03-25 15:37:22
    //密码由字母或数组组成 function is_passwd($v){ $pattern="/^[0-9a-zA-Z]{6,16}$/i"; if(preg_match($pattern,$v)){ \System\FileLog\FileLog::write("-------h5密码重置:true"); retu...
  • java后台时间格式校验

    2020-03-27 11:33:37
    利用正则表达式校验时,要充分利用预处理功能,将表达式定义为静态常量。 boolean matches = P.matcher(bean.getKssj()).matches(); boolean matches2 =P.matcher(bean.getJssj()).matches(); 通过此种方式进行判断...
  • email邮箱格式校验

    千次阅读 2011-01-05 17:59:00
    js校验:var email= $('#email').val(); var email_reg=/^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$/; if(!email_reg.test(email)){ alert("请输入正确的邮箱地址"); return false; } php服务端...
  • 可能是项目里用了格式校验的工具,然后提示我的空格的格式写的不对 解决方案: 花括号留出回车,也就是由下面的图1改成图2,我猜测这可能是项目使用的格式校验的工具给我报的错,只能按照它的要求来。 ...
  • JS 大陆香港台湾手机格式校验

    千次阅读 2018-10-25 18:01:03
    手机格式校验 var mobilePatternHK = /^(\+852\s)?[5689]{1}\d{7}$/; var mobilePatternTW = /^(\+886\s)?[0]{1}[9]{1}\d{8}$/; var mobilePatternCN = /^(\+86\s)?1[3456789]{1}\d{9}$/;
  • 首先保证easyui环境配置好之后,在需要校验输入的jsp页面定义如下的function: //扩展校验规则 $(function(){ var reg = /^1[3|4|5|7|8|9][0-9]{9}$/; //正则表达式 $.extend($.fn.validatebox.defaults....
  • 手机号格式校验和手机号添加空格

    千次阅读 2019-07-08 11:41:48
    1、手机号格式校验 let phoneReg = /^[1][3,4,5,7,8][0-9]{9}$/; phoneReg.test(phoneNumber) 2、手机号前三位后添加空格,后面每隔四位添加空格 phoneAddGap(phoneNum){ let regPhoneNum = phoneNum....
  • Java 对上传文件后缀格式校验

    千次阅读 2019-05-09 11:36:15
    在对格式校验的时候要考虑到用户或者攻击者对文件后缀进行的改变,导致上传的文件并不是我们需要的类型,从而对系统造成影响. 我们可以对常用的文件进行校验,如图片格式, 压缩格式,office word,Excel格式,以及其他...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 289,250
精华内容 115,700
关键字:

网址格式校验