Вы перепутали свой вар с классом.
Вы должны написать
Object obj = parser.parse(reader);
parser
- это ваша переменная, которая содержит Instance of JsonParser
с методом parse()
вместо [1112 ]
Object obj = JsonParser.parse(reader);
JsonParser
- это Class JsonParser
, который не имеет статического метода parse()
Я использовал бы регулярное выражение по причинам, которые менеджер привел, pluss некоторые (более портативный, легче для внешних программистов следовать, и т.д.).
Ваш встречный аргумент упускает суть, что его решение было хрупко относительно локальных изменений, в то время как Ваш хрупко относительно глобальных изменений. Что-либо, что повреждает его, вероятно, повредит Ваш, но не визу-versa.
Наконец, намного легче создать помои / гибкий провод в его решение (если, например, необходимо иметь дело с несколькими незначительными вариациями во входе).
Я использовал бы регулярное выражение, но только потому, что большинство страниц HTML не является допустимым XML, таким образом, Вы никогда не заставляли бы XQUERY работать.
Я не знаю XQuery, но это похоже на выражение XPath мне. Если так, это выглядит немного дорогим с так многими "//" операторы в нем.
Попробуйте JTidy или BeautifulSoup, у меня работает нормально. конечно // Эксперимент XPATH довольно затратен на утилизацию.
Я на самом деле нахожу поисковые выражения CSS легче читать, чем также. Там, вероятно, существует по крайней мере одна библиотека на языке по Вашему выбору, который проанализирует страницу и позволит Вам писать директивы CSS для определения местоположения конкретных элементов. Если существует соответствующий класс, или идентификатор сцепляются поблизости затем, выражение довольно тривиально. Иначе захватите элементы, которые кажутся соответствующими и выполняют итерации через них для нахождения тех, что Вам нужно.
Что касается хрупкого, ну, в общем, они все хрупки. Анализ экранных данных по определению зависит от автора той страницы, не изменяющей ее расположение решительно. Пойдите с решением, это читаемо и может быть легко изменено позже.
Нехрупкое решение для анализа экранных данных? Удача интервьюеру для этого: просто, потому что регулярные выражения отказываются от большого количества контекста, не означает, что они являются немного менее хрупкими: просто то, что они являются хрупкими другими способами. Хрупкость даже не может быть недостатком: если что-то изменяется в исходной веб-странице, Вы часто более обеспечены, если Ваше решение поднимает тревогу, а не пытается компенсировать в умном (и непредсказуемый) путь. Поскольку Вы отметили. Эти вещи всегда зависят от Ваших предположений: в этом случае, на том, что составляет вероятное изменение.
Я довольно люблю пакет гибкости HTML: Вы получаете допуск non-XHTML-compliant веб-страниц, объединенных с выразительным питанием XPath.
Регулярные выражения действительно быстро и работают с Non XML-документами. Это действительно хорошие моменты против XQuery. Однако я думаю, что используя какой-нибудь конвертер к XHTML, как приборки, и, возможно, несколько проще, XQuery, как только последняя часть от ваших:
//b[contains(child::text(), "Product Dimensions:")]/following-sibling::text()
- очень хорошая альтернатива.
С уважением