问题描述
getStringCoder 67 line unsafe get String.coder error
环境信息
版本信息:[e.g.:Fastjson2 2.0.7] 重现步骤
public static byte getStringCoder(String str) {
// GraalVM not support
// Android not support
if (str == null) {
throw new NullPointerException();
}
if (JDKUtils.JVM_VERSION == 8) {
return 1;
}
if (STRING_CODER_OFFSET == 0) {
try {
Field fieldCode = String.class.getDeclaredField("coder");
STRING_CODER_OFFSET = UNSAFE.objectFieldOffset(fieldCode);
} catch (Exception e) {
throw new JSONException("unsafe get String.coder error", e);
}
}
return UNSAFE.getByte(str, STRING_CODER_OFFSET);
}
fun getJsonFromAssetPath(context: Context, path: String): String? { var inputStream: InputStream? = null try { inputStream = context.assets.open(path) return JSON.parseObject(inputStream, UTF_8, String::class.java) } catch (e: Exception) { CommonLogUtils.e( Tag.TAG, "getJsonFromAsset is error " + e.message ) } finally { try { inputStream?.close() } catch (e: IOException) { CommonLogUtils.e( Tag.TAG, "getJsonFromAsset is error " + e.message ) } } return null }
期待的正确结果
JSON.parseObject有重大问题,解析unsafe get String.coder error,希望修正
原提问者GitHub用户wangshuai7777
Android环境用 2.0.7.android https://repo1.maven.org/maven2/com/alibaba/fastjson2/fastjson2/2.0.7.android/
原回答者GitHub用户wenshao
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。