Java:基于 64 位的字符串解码/解析失败
Java : 64 based string decode / parse failed
我正在尝试转换这个基于 64 位编码的 JSON 字符串并使用 flexjson API 将收到的 JSON 转换为 POJO。
首先try块,将直接JSON作为字符串转成对象即成功。此字符串使用在线工具解码。
现在第二个 try 块,尝试以类似的方式将基于 64 位的字符串转换为一个对象,但是在 运行 上转换基于 64 位的字符串会引发异常 flexjson.JSONException:应在字符 10
处使用“,”或“]”
try {
AsyncResponseDO asyncResponseDO = new JSONDeserializer<AsyncResponseDO>().deserialize("{\"relatesTo\":\"7_Sept2017_IF01\"}", AsyncResponseDO.class);
System.out.println(asyncResponseDO.getRelatesTo());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
AsyncResponseDO asyncResponseDO = new JSONDeserializer<AsyncResponseDO>().deserialize(Base64.decodeBase64("eyJyZWxhdGVzVG8iOiI3X1NlcHQyMDE3X0lGMDEifQ==".getBytes()).toString(), AsyncResponseDO.class);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
POJO class :
public class AsyncResponseDO {
private String relatesTo;
public String getRelatesTo() {
return relatesTo;
}
public void setRelatesTo(String relatesTo) {
this.relatesTo = relatesTo;
}
}
新字符串(Base64.decodeBase64("eyJyZWxhdGVzVG8iOiI3X1NlcHQyMDE3X0lGMDEifQ==".getBytes()));
这将转换为正确的字符串。
我参考了https://www.mkyong.com/java/how-do-convert-byte-array-to-string-in-java/
我正在尝试转换这个基于 64 位编码的 JSON 字符串并使用 flexjson API 将收到的 JSON 转换为 POJO。
首先try块,将直接JSON作为字符串转成对象即成功。此字符串使用在线工具解码。
现在第二个 try 块,尝试以类似的方式将基于 64 位的字符串转换为一个对象,但是在 运行 上转换基于 64 位的字符串会引发异常 flexjson.JSONException:应在字符 10
处使用“,”或“]” try {
AsyncResponseDO asyncResponseDO = new JSONDeserializer<AsyncResponseDO>().deserialize("{\"relatesTo\":\"7_Sept2017_IF01\"}", AsyncResponseDO.class);
System.out.println(asyncResponseDO.getRelatesTo());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
AsyncResponseDO asyncResponseDO = new JSONDeserializer<AsyncResponseDO>().deserialize(Base64.decodeBase64("eyJyZWxhdGVzVG8iOiI3X1NlcHQyMDE3X0lGMDEifQ==".getBytes()).toString(), AsyncResponseDO.class);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
POJO class :
public class AsyncResponseDO {
private String relatesTo;
public String getRelatesTo() {
return relatesTo;
}
public void setRelatesTo(String relatesTo) {
this.relatesTo = relatesTo;
}
}
新字符串(Base64.decodeBase64("eyJyZWxhdGVzVG8iOiI3X1NlcHQyMDE3X0lGMDEifQ==".getBytes()));
这将转换为正确的字符串。
我参考了https://www.mkyong.com/java/how-do-convert-byte-array-to-string-in-java/