gson.fromJson bug?无法解析有效的json

时间:2016-02-10 12:28:03

标签: java json

方法

private boolean isJSONValid(String test) {
    try {
        gson.fromJson(test, Object.class);
        return true;
    } catch (com.google.gson.JsonSyntaxException ex) {
        return false;
    }
}

在此JSON上返回false - {"R":"CsIGAADwPxIESS5PSw==","I":"70"} 我相信这是正常的JSON,如果没有,请证明我,并告诉我为什么

2 个答案:

答案 0 :(得分:0)

我已经尝试过您的代码,但它运行正常:

public static void main( String[] args ){
    System.out.println( isJSONValid( "{'R':'CsIGAADwPxIESS5PSw==','I':'70'}" ) );
}

private static boolean isJSONValid( String test ){
    try{
        new Gson().fromJson( test, Object.class );
        return true;
    }
    catch( com.google.gson.JsonSyntaxException ex ){
        return false;
    }
}

这会打印true。您的问题可能是传入的String上看不见的unicode字符。请每次都记录您的例外情况!澄清它。

答案 1 :(得分:0)

它正常工作......当转义双引号时....

import com.google.gson.Gson;

公共课测试{

private boolean isJSONValid(String test) {
    try {
        Gson gson = new Gson();
        gson.fromJson(test, Object.class);
        return true;
    } catch (com.google.gson.JsonSyntaxException ex) {
        System.out.println(ex);
        return false;
    }
}

public static void main(String[] args) {
    Testing isj = new Testing();
    String test = "{\"R\":\"CsIGAADwPxIESS5PSw==\",\"I\":\"70\"}";
    System.out.println(isj.isJSONValid(test));
}

}