开发者社区> 问答> 正文

JSON.parseObject有重大问题

问题描述

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 } Uploading f9Usxkf0ub.jpg…

期待的正确结果

JSON.parseObject有重大问题,解析unsafe get String.coder error,希望修正

原提问者GitHub用户wangshuai7777

展开
收起
飘飘斯嘉丽 2023-04-21 12:02:13 225 0
1 条回答
写回答
取消 提交回答
  • Android环境用 2.0.7.android https://repo1.maven.org/maven2/com/alibaba/fastjson2/fastjson2/2.0.7.android/

    原回答者GitHub用户wenshao

    2023-04-21 14:34:55
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载