メッセージを逆シリアル化しようとしていますが、以下のステートメントの例外が発生しています。スラッシュはdeserialize json中に受け入れられません
Object key = gson.fromJson("40280381-3d27-5493-013d-4be146935c5c_abcdefg/ijklmnop", Class.forName("java.lang.String"));
私はこのコードが正常に動作しているスラッシュを削除する場合は、例外が、文字列値に起因する/
に発生しています。しかし、私は文字列の値に/
が必要です、これで私を助けてください。
実際のメソッド
private void fillTheMap(JsonParser jp, Map<Object, Object> map) {
JsonToken jt = jp.nextToken();
while ((jt = jp.nextToken()) != JsonToken.END_ARRAY) {
// Get the key.
jt = jp.nextToken();
String keyTypeName = jp.getCurrentName();
keyTypeName = keyTypeName.replace(":mapKey", "");
Class keyType = Class.forName(keyTypeName);
jt = jp.nextToken();
Object key = gson.fromJson(jp.getText(), keyType);
Object value = deSerIze(jp);
map.put(key, value);
jt = jp.nextToken();
}
}
例外
com.google.gson.stream.MalformedJsonException:使用JsonReader.setLenient(真の)不正な形式のJSONを受け入れるように
'gson.fromJson' ...問題はスラッシュではなく、文字列全体です... JSONではありません –
あなたが望むものが混乱しています。Gsonを使用して文字列を文字列に変換する実際のコードとJSONオブジェクトを[mcve] –
に表示してください。いいえ、実際はありません。あなたは何をしているのか分かりませんか?既に文字列があります。なぜあなたはGsonでそれを非直列化しようとしていますか? –