Портирование Python JSON API на Java (GWT) - PullRequest
2 голосов
/ 17 сентября 2011

Я пытаюсь перенести этот бит кода Python на Java http://www.bemasher.net/archives/1002 (прокрутите код до конца)

Но из-за того, что все динамически набрано, у меня возникают трудности при переносе. Мне нужно уметь использовать Java-реализацию Python JSON. Прямо сейчас я использую gson (http://code.google.com/p/google-gson/), но я открыт для всего.

Ни одна из Гсона из подписей Джсона

public <T> T fromJson(String json, Class<T> classOfT) throws JsonParseException
public <T> T fromJson(String json, Type typeOfT) throws JsonSyntaxException 

соответствует Pythons

data = json.loads(response)

Это JSON, который я пытаюсь прочитать: http://www.ows.newegg.com/Stores.egg/Categories/1

Как мне получить класс или тип JSON выше и прочитать его? Все остальные примеры, которые я видел, должны знать, что это такое.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 17 сентября 2011

Он в основном выбирает http://www.ows.newegg.com/Stores.egg/Menus и выводит его содержимое в строку (response), затем анализирует JSON с помощью json.loads() и помещает это в data.

Затем он будет перебирать содержимое данных и строить список HTML, используя lxml. Сам список должен выглядеть так:

<ul>
  <li><a href="/Store?{StoreID}">{StoreTitle}</a></li>
  ...
</ul>

Где {StoreID} и {StoreTitle} - идентификаторы и заголовки, извлеченные и проанализированные с этого URL.

Ссылки: urllib2, json, lxml

0 голосов
/ 17 сентября 2011

Я забыл упомянуть, что использовал Google Web Toolkit - извините за это.Я пошел дальше и принял ответ @ NullUserException , хотя я пишу его для всех, кто может столкнуться с этим.

При преобразовании этого из Python в эквивалент Java (GWT),Я обнаружил, что в GWT уже есть поддержка JSON, и еще лучше он работает на стороне клиента, сохраняя поездки на сервер.(источник: JSON GWT API )

Чтобы сохранить ваш код в чистоте, я использую оболочку для него, которую можно найти в коде Google здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...