判斷字符串是否是合法字符串


如果是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);
    }
}

以上方法僅供參考,歡迎大家在評論區補充!
希望可以幫助到大家,大家也可關注我的公眾號方便在手機上進行查看


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM