• 判断字符串是否是合法字符串


    如果是linux系统,还可以通过调用linux的jq(需要安装)来检测

    echo '{"name":"czz","gender":"M","age":25}' | jq .
    该命令解析json

    如果字符串不合法,将会解析失败:

    如果java开发,可以用json相关插件,但经测试gson的fromJson,解析普通字符串如"abc",也可以解析成功,故不推荐使用gson

          <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
          </dependency>
    
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>${gson.version}</version>
            </dependency>
    

    代码如下:

    package com.XXX.util;
    
    import com.alibaba.fastjson.JSONException;
    import com.alibaba.fastjson.JSONObject;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.google.gson.Gson;
    import com.google.gson.JsonSyntaxException;
    import com.sun.org.apache.xpath.internal.operations.Bool;
    
    import java.io.IOException;
    
    /**
     * Created by czz on 2020/1/13.
     */
    public class JsonUtils {
        public static Boolean jsonValidByJackson(String jsonStr){
            try {
                final ObjectMapper mapper = new ObjectMapper();
                mapper.readTree(jsonStr);
                return true;
            } catch (IOException e) {
                return false;
            }
        }
    
        public static Boolean jsonValidByFastjson(String jsonStr){
            try {
                JSONObject.parseObject(jsonStr);
            } catch (Exception e) {
                try {
                    JSONObject.parseArray(jsonStr);
                } catch (JSONException ex) {
                    return false;
                }
            }
            return true;
        }
    
        public static Boolean jsonValidByGson(String jsonStr){
            Gson gson = new Gson();
            try {
                gson.fromJson(jsonStr, Object.class);
                return true;
            } catch(JsonSyntaxException e) {
                return false;
            }
        }
    
        public static void main(String[] args) {
            String jsonObj = "{"name":"czz","gender":"M","age":25}";
            String jsonListStr = "["yyy","UUU","iii"]";
            String jsonListObj = "[{"name":"czz","gender":"M","age":25},{"name":"aaa","gender":"F","age":20}]";
            String jsonObjWithList = "{"name":"depart","epp":[{"name":"czz","gender":"M","age":25},{"name":"aaa","gender":"F","age":20}]}";
            String jsonError = "{"name:"czz","gender":"M","age":25}";
            String str = "test测试";
            Boolean b1 = jsonValidByJackson(str);
            Boolean b2 = jsonValidByFastjson(str);
            Boolean b3 = jsonValidByGson(str);
            System.out.println("b1:"+b1);
            System.out.println("b2:"+b2);
            System.out.println("b3:"+b3);
        }
    }
    
    

    以上方法仅供参考,欢迎大家在评论区补充!
    希望可以帮助到大家,大家也可关注我的公众号方便在手机上进行查看

  • 相关阅读:
    activeMq-1 快速入门
    netty2 案例:数据通信
    SQL学习分享之数据链接(二)
    SQL学习 (一)
    CSS的定位重叠
    CSS 伪类 学习
    Jmeter 初学(三)
    玩转codeacademy (三)
    玩转codecademy (二)
    玩转codecademy(首次体会对象的乐趣) (一)
  • 原文地址:https://www.cnblogs.com/caozz/p/json-valid.html
Copyright © 2020-2023  润新知