java – 使用十六进制值将json十进制数转换为short

我有一个
JSONObject包含一个十进制值的字符串,如下所示:

private static RegisterIn ParseRegisterIn(JSONObject object)
{
    RegisterIn toReturn = new RegisterIn();
    try {
        toReturn.setUsername(object.getString("username"));
        toReturn.setCertificate(new Short(Integer.toHexString(object.get("certificate"))));
    } catch (JSONException e) {
        e.printStackTrace();
    }
    return toReturn;
}

证书对象值为15879,对应于十六进制的3E07.我想从JSONObject中恢复它并将其保存在一个短属性中.而且它必须是那样的.

我试图访问参数并恢复上面发布的,但我得到以下异常:

java.lang.NumberFormatException: Invalid int: “3e07”

如何获取此十进制值,将其转换为十六进制,并将其保存为短值?

注意:

toReturn.setCertificate(...)

是短型的.

最佳答案 你需要用,

Short.parseShort(object.getString("certificate"), 16);
点赞