`
heipark
  • 浏览: 2097185 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

判断字符串是否是有效json对象(java + gson )

    博客分类:
  • Java
 
阅读更多
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.google.gson.JsonParseException;
import com.google.gson.JsonParser;

public class JsonUtils {

	protected final static Log logger = LogFactory.getLog(JsonUtils.class);

	public static boolean isBadJson(String json) {
		return !isGoodJson(json);
	}

	public static boolean isGoodJson(String json) {
		if (StringUtils.isBlank(json)) {
			return false;
		}
		try {
			new JsonParser().parse(json);
			return true;
		} catch (JsonParseException e) {
			logger.error("bad json: " + json);
			return false;
		}
	}
}

 

--end

 

 

分享到:
评论
4 楼 heipark 2014-12-02  
useryang 写道
说到底还是通过是否解析异常来判断的。。

useryang 写道
说到底还是通过是否解析异常来判断的。。

看下2楼的实现
3 楼 useryang 2014-11-27  
说到底还是通过是否解析异常来判断的。。
2 楼 nk_tocean 2014-01-23  
public static boolean isGoodJson(String json) {
        if (StringUtils.isBlank(json)) {
            return false;
        }
        try {
            JsonParser jsonParser = new JsonParser();
            JsonElement jsonElement =  jsonParser.parse(json);
            return jsonElement.isJsonObject();
        } catch (JsonSyntaxException e) {
            logger.error(json + "is invalid json str", e);
            System.out.println("exception");
        }

        return false;
    }
1 楼 gxz1989611 2013-11-28  
    @Test
    public void testIsGoodJson(){
    	String str = "ddsfa";
    	if(isGoodJson(str)){
    		System.out.println(str + " is good json");
    	} else {
    		System.out.println(str + " is bad json");
    	}
    }
    
    public static boolean isGoodJson(String json) {  
        if (StringUtils.isBlank(json)) {  
            return false;  
        }  
        try {  
            new JsonParser().parse(json);
            return true;  
        } catch (JsonParseException e) {  
            System.out.println("bad json: " + json);  
            return false;  
        }  
    }

结果
ddsfa is good json

相关推荐

    java验证字符串是否符合json格式

    在Java编程中,验证字符串是否符合JSON(JavaScript Object Notation)格式是一项常见的任务,尤其是在进行前后端数据交互时。JSON是一种轻量级的数据交换格式,它允许数据以键值对的形式存储,易于人阅读和编写,...

    kotlin下okhttp+gson的网络请求

    - Gson能够将Java对象转换成JSON字符串,反之亦然。这对于处理服务器返回的JSON数据非常有用。 - 在Kotlin中,可以通过GsonBuilder创建Gson实例,然后调用`fromJson(jsonString, type)`或`toJson(object, type)`...

    利用java反射将json字符串转成对象.zip

    在给定的“利用java反射将json字符串转成对象”的主题中,我们将深入探讨如何借助反射机制将JSON字符串转换为Java对象。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人...

    (java常用工具jar组合)c3p0-0.9.1.2.bin+jackson 2.82+JSTL-jar+junit4.4.jar+gson-2.5.jar

    它可以将Java对象转换为JSON字符串,反之亦然。Gson库简单易用,功能强大,支持复杂的类型转换,如泛型、自定义序列化和反序列化策略,广泛应用于Web服务、数据存储等领域。 这些jar文件的组合为Java开发提供了基础...

    Java常用工具类(持续发布,第一部分:日期、字符串、JSON工具类等)

    Java中,`java.lang.String`类本身提供了丰富的操作方法,如`isEmpty()`用于判断字符串是否为空,`trim()`用于去除字符串两端的空白字符。但有时我们还需要更复杂的功能,这时可以借助Apache Commons Lang库中的`...

    java解析任意层数json字符串的方法

    在处理JSON字符串时,经常会遇到需要解析任意层数的JSON数据结构的情况。这要求解析方法具有足够的灵活性和适应性,能够应对各种复杂的JSON字符串格式。在Java中,常用的JSON解析库是org.json库,它提供了JSONObject...

    Java如何处理json字符串value多余双引号

    在Java程序开发中,JSON(JavaScript Object Notation)格式的字符串常用于前后端数据交换。然而,在处理JSON字符串时,可能会出现一些格式错误,比如value值中包含多余的双引号,这种情况可能会影响数据的正确解析...

    Java数据传输之消息字符串应用

    在Java中,可以使用`org.json`库或者Google的`Gson`库将Java对象转换为JSON字符串,反之亦然。例如,使用`Gson`库将一个Java对象转换为JSON: ```java import com.google.gson.Gson; public class User { private...

    OkHttp的封装和使用,以及OKhttp和Gson jar包

    而Gson则是Google提供的一个Java库,能够将Java对象转换为JSON字符串,同时也能将JSON字符串反序列化为Java对象,方便我们在Android应用中处理JSON数据。 在使用OkHttp时,我们需要先将其添加到项目的依赖库中。...

    判断日期是否是节假日(包含JSON依赖的jar包)

    3. **日期处理**:输入的日期字符串(如"20190304")需要被解析为Java的日期对象,这可以通过`SimpleDateFormat`类完成。日期格式应与JSON中的日期格式一致。 4. **判断节假日**:将解析后的日期与存储的节假日数据...

    完美解决gson将Integer默认转换成Double的问题

    使用这个自定义的Gson对象,我们可以将Json字符串正确地转换成Map,Object>,而且不会将Integer类型的值转换成Double类型。 本文介绍了Gson将Integer默认转换成Double的问题,并提供了解决方法。使用自定义的Gson...

    fastJson和gson的用法

    在Java开发中,我们常常需要将JSON字符串转化为Java对象,或者将Java对象转化为JSON字符串,这时就需要用到序列化和反序列化的工具库。本文将深入探讨两个流行的Java JSON处理库:FastJson和Gson。 FastJson是阿里...

    json 解析 xml

    - `Gson`库:Google开发的Gson库能将Java对象直接转换为JSON字符串,反之亦然。使用Gson,解析和序列化更加便捷,如`Gson().fromJson(jsonString, YourClass.class)`。 - `Jackson`库:另一个流行的选择,提供了`...

    采用Gson解析含有多种JsonObject的复杂json

    在Java开发中,Gson库是一个非常常用的JSON解析库,它可以方便地将JSON字符串转换为Java对象,反之亦然。然而,当面对包含多种不同结构JsonObject的复杂JSON时,简单的映射方式不再适用。在这种情况下,我们需要采取...

    Android应用源码之Android 解析json_dome.zip

    1. Gson库:Google提供的Gson库能将Java对象转换为JSON字符串,反之亦然。使用Gson,我们可以轻松地将JSON数据映射到Java对象,从而方便地操作数据。例如: ```java // 定义一个Java对象 public class MyData { ...

    JSON.rar_If...

    1. 解析JSON:将JSON字符串转换为对应的Java对象,例如使用Gson库、Jackson库或者Android自带的`org.json`包。 2. 构建JSON:将Java对象转换为JSON字符串,以便发送到服务器或保存到本地。 3. 错误处理:当输入的值...

    android 动态解析获取json数据的键值对

    // 转换输入流为字符串 JSONObject jsonObject = new JSONObject(jsonString); JSONArray usersArray = jsonObject.getJSONArray("users"); ``` 接下来,我们遍历`usersArray`,获取每个用户对象,并解析出其中的...

    Servlet+MVC+taglib+JSON+Android

    在Servlet中,可以使用Jackson或Gson等库将Java对象转换为JSON字符串,然后通过HTTP响应发送给客户端。 Android是Google主导的开源移动操作系统,主要应用于智能手机和平板电脑。Android开发涉及Java或Kotlin语言,...

    基于Java的Json描述器,解决项目当中字段多,且多个字段需要进行判定以及校验的问题.zip

    Json描述器是Jackson、Gson等JSON库提供的一个特性,允许我们自定义JSON字符串解析为Java对象的过程。通过覆盖默认的行为,我们可以控制哪些字段被解析,如何解析,以及在解析过程中进行必要的验证。 在Java中,最...

    Java中JSON处理工具类使用详解

    5. 判断对象是否为实体类(isEntity):为了处理JSON字符串的序列化,通常需要判断一个对象是否是实体类。在isEntity方法中,列出了Fastjson不处理的一些常见类型(如String、Integer、Date等),如果对象属于这些...

Global site tag (gtag.js) - Google Analytics