gson判断字符串是否是json

ggoo
  • 58

Java有个字符串,如何判断它是json字符串?
现在主流的方法是啥呢?

gson原来有个JsonParser,现在弃用了,

String tmp = "{\"hello\":\"world\"}";

System.out.println(new JsonParser().parse(tmp));;

难道只能

try {
    Gson gson = new Gson();
    gson.fromJson(tmp, Map.class);
} catch (Exception e) {
    // todo
}
回复
阅读 677
1 个回答
✓ 已被采纳

专门去看了一下Gson,你的说法gson原来有个JsonParser,现在弃用了,其实是错误的。

当前最新版本为: 2.9.0 https://mvnrepository.com/artifact/com.google.code.gson/gson

image.png

他的意思是:没必要实例化该类,直接使用静态方法即可。所以,可以继续使用:

/**
 * Parses the specified JSON string into a parse tree
 *
 * @param json JSON text
 * @return a parse tree of {@link JsonElement}s corresponding to the specified JSON
 * @throws JsonParseException if the specified text is not valid JSON
 */
public static JsonElement parseString(String json) throws JsonSyntaxException {
  return parseReader(new StringReader(json));
}

一个点赞比较高的答案:https://stackoverflow.com/questions/10174898/how-to-check-whether-a-given-string-is-valid-json-in-java

import org.json.*;

public boolean isJSONValid(String test) {
    try {
        new JSONObject(test);
    } catch (JSONException ex) {
        // edited, to include @Arthur's comment
        // e.g. in case JSONArray is valid as well...
        try {
            new JSONArray(test);
        } catch (JSONException ex1) {
            return false;
        }
    }
    return true;
}

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏