Разбор пакетов FHIR в Java с использованием JSON

Я не могу проанализировать входящий запрос Bundle (JSON) для объектов данных Java. Похоже, что парсер не распознает "resourceType": "Bundle". Синтаксический анализатор не выполняет if (json.has("feed")) оператор JsonParserBase. Я также пробовал использовать "resourceType": "feed", но безуспешно.

Реализация Java не дает конкретного парсера, тогда как она доступна для версии .NET. Мое приложение основано на Java и не может распознать входящий запрос Bundle. Я использую метод org.hl7.fhir.instance.formats.JsonParser parseGeneral().

Доступны ли сторонние парсеры или мне что-то не хватает?


person Ashish    schedule 09.04.2014    source источник
comment
Кто-то предполагает, что вы делаете это на каком-то языке программирования? И использовать какой-то парсер JSON и, возможно, одну из тех дрянных настроек, которые создают объекты прямо из JSON? Но мы никогда не узнаем, потому что вы НИЧЕГО не сказали нам!   -  person Hot Licks    schedule 10.04.2014
comment
Прости за это. Отредактировал вопрос, добавив больше деталей.   -  person Ashish    schedule 10.04.2014
comment
Для JSON существует более двух десятков различных парсеров. Не знаком с тем, что вы описываете. Но любой парсер должен уметь разбирать законный JSON. Проблемы могут быть связаны с надстройками к базовому синтаксическому анализатору, которые либо пытались применить схему, либо пытались создать объект Java непосредственно из JSON, без вмешательства логики, которую вы пишете. Мы не сможем узнать об этом, пока вы не опишете их.   -  person Hot Licks    schedule 10.04.2014
comment
Обратите внимание, что вам следует перейти на json.org и потратить 5–10 минут на изучение синтаксиса JSON. И вам следует захватить источник JSON, который вы используете, и запустить его через онлайн-анализатор JSON, чтобы убедиться, что он действительный JSON и не был поврежден при передаче. Плюс отредактируйте проблемные части вашего JSON в своем вопросе.   -  person Hot Licks    schedule 10.04.2014
comment
Я уже определил парсер (org.hl7.fhir.instance.formats.JsonParser) в своем вопросе, который использую. Этот вопрос относится к стандартам FHIR (Hl7). У меня есть готовые объекты данных, но синтаксический анализатор JSON для HL7 не сопоставляет их с определенным набором. Прошу вас ответить или предоставить комментарии, только если вы работали с этой технологией и просто не отвечаете ради ответа. Очевидно, у меня была действующая строка JSON, которую я пытаюсь разобрать. Я не впервые использую JSON.   -  person Ashish    schedule 10.04.2014


Ответы (1)


Это ошибка парсера Java, которую я исправил за несколько часов до того, как вы задали вопрос. Вы можете получить последнюю версию фиксированного синтаксического анализатора из FHIR gForge (см. http://wiki.hl7.org/index.php?title=FHIR_Build_Process для доступа), и мы работаем над новыми выпусками (на http://hl7.org/fhir и через maven).

Не уверен, что это означает: «Реализация Java не дает конкретного парсера, тогда как она доступна для версии .NET». Я думаю, что парсер Java конкретен. В данном случае это было неправильно.

person Grahame Grieve    schedule 10.04.2014
comment
Да, я имею в виду то же самое. Я не смог найти что-то под названием Bundle.java, где, как я предполагаю, он доступен в мире .NET. Я разобрался, как это будет работать. Если я завершу свой полный запрос внутри "feed", я смогу преобразовать его в объект данных. Вот что я сделал. Пожалуйста, поделитесь своим мнением по этому поводу. ResourceOrFeed resourceorFeed = jsonParser.parseGeneral(new ByteArrayInputStream(jsonString.getBytes())); Кроме того, не могли бы вы вкратце объяснить, какую ошибку вы исправили? - person Ashish; 10.04.2014
comment
в эталонной реализации java класс называется AtomFeed вместо Bundle - в основном потому, что класс предшествовал нашему решению вызвать вещь Bundle, как только мы начали использовать для него вариант JSON. Что я изменил в парсере, так это то, что он больше не ищет объект канала, он ищет resourceType: Bundle, как указано в спецификации. - person Grahame Grieve; 10.04.2014
comment
Звучит здорово. Запросили учетную запись SVN. Будет проверять последнюю версию после активации учетной записи. Доступен ли какой-либо сервер SVN с анонимной оплатой? - person Ashish; 10.04.2014