如果是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);
}
}
以上方法僅供參考,歡迎大家在評論區補充!
希望可以幫助到大家,大家也可關注我的公眾號方便在手機上進行查看