Сжатие JSON с использованием сериализации и десериализации работает. Но хранение и перезагрузка сжатого JSON не работает.
После сохранения сжатого JSON в текстовом файле. Следующее приложение загружает этот файл и пытается его десериализовать. Следующее приложение загружает файл и читает построчно как текст, как мне преобразовать текст в byteArray, чтобы я мог десериализовать его обратно в JSON
Если я сериализую строку, беру результат и десериализую его, это работает. в ту минуту, когда я записываю файл serielse / сжатый json в файл и перезагружаю его в строковую переменную, а затем пытаюсь десеризовать его, он не работает.
Я знаю, что проблема заключается в хранении и перезагрузке сжатого JSON
def serialise(value: Any): Array[Byte] = {
val stream: ByteArrayOutputStream = new ByteArrayOutputStream()
val oos = new ObjectOutputStream(stream)
oos.writeObject(value)
oos.close()
stream.toByteArray
}
def deserialise(bytes: Array[Byte]): Any = {
val ois = new ObjectInputStream(new ByteArrayInputStream(bytes))
val value = ois.readObject
ois.close()
value
}
// РАБОТАЕТ (ниже)
def main(args: Array[String]): Unit = {
val json_msg_string = "{\"data_type\":\"input\"}
val s_result: Array[Byte] = serialise(json_msg_string)
val d_result = deserialise(s_result)
}
// НЕ работает (ниже)
def main(args: Array[String]): Unit = {
val json_msg_string = "{\"data_type\":\"input\"}
val s_result: Array[Byte] = serialise(json_msg_string)
// write to file
new PrintWriter("/home//test_json_compressed.txt") { write(s_result.toString); close }
// reload file
for (line <- Source.fromFile(filename).getLines) {
deserialise(line)
}
}
- Какой самый лучший и быстрый способ сжатия JSON (Scala)
- Как сохранить сжатый JSON (Scala)
- Как перезагрузить сжатый JSON и преобразовать его обратно в JSON (Scala)