Чтение файла Json в JAVA с библиотекой io.vertx.core.json

Я хочу прочитать файл .json в java и преобразовать его в JsonObject. Пожалуйста, предложите код с Json, но не с JSON. Я использую io.vertx.core.json.JsonObject library.

Object obj = parser.parse(new FileReader()); //this is from library simple.ore.JSON.
JsonObject obj1;
obj1 = (JsonObject)(obj);

Я пытался использовать JSONparser для чтения файлов, который дает JSONObject, но мне нужен JsonObject.

java.lang.ClassCastException: org.json.simple.JSONObject cannot be cast to io.vertx.core.json.JsonObject.


person ammy    schedule 21.06.2019    source источник
comment
Видите ли, вам нужно использовать либо org.json.simple.JSONObject, либо io.vertx.core.json.JsonObject. оба провайдера разные, а с другой стороны, класс JsonObject расширяет объект, реализует Iterable‹Map.Entry‹String,Object››, io.vertx.core.shareddata.impl.ClusterSerializable, Shareable и общедоступный класс JSONObject расширяет java.util.HashMap реализует java.util.Map, JSONAware, JSONStreamAware, чтобы вы могли увидеть разницу.   -  person Hasanuzzaman Rana    schedule 21.06.2019
comment
Для справки вы можете проверить - mkyong.com/java /json-simple-example-read-and-write-json , codota.com/code/java/methods/org.json.simple.parser.JSONParser/   -  person Hasanuzzaman Rana    schedule 21.06.2019


Ответы (1)


Проблема в том, что вы используете парсер из другой библиотеки и ожидаете получить экземпляр io.vertx.core.json.JsonObject. Вместо этого прочитайте файл, содержащий текст JSON, в строку Java. Обратите внимание, что это можно сделать с помощью IOUtils.toString(Reader). Затем используйте конструктор JsonObject. Например, вы можете просто использовать что-то похожее на следующий код:

String jsonStr = IOUtils.toString(new FileReader(myFileName));
JsonObject jsonObj = new JsonObject(jsonStr);

Надеюсь, это поможет!

person entpnerd    schedule 21.06.2019
comment
также имейте в виду, что FileReader блокирует очередь событий, поэтому vertx имеет собственные инструменты файловой системы: vertx.fileSystem().readFile(...) - person taygetos; 21.06.2019