Библиотека org.json проста в использовании. Пример кода ниже:
import org.json.*;
JSONObject obj = new JSONObject(" .... ");
String pageName = obj.getJSONObject("pageInfo").getString("pageName");
JSONArray arr = obj.getJSONArray("posts");
for (int i = 0; i < arr.length(); i++)
{
String post_id = arr.getJSONObject(i).getString("post_id");
......
}
Вы можете найти больше примеров из: Parse JSON в Java
Загружаемый jar: http: // mvnrepository .com / артефакт / org.json / JSON
Я не думаю, что это возможно сделать так, как вы пытаетесь это сделать.
Индикация принятого формата данных обычно делается путем добавления расширения к имени ресурса. Итак, если у вас есть ресурс, такой как
/resources/resource
и GET /resources/resource
, возвращается его представление HTML, чтобы указать, что вы хотите его представление XML, вы можете использовать следующий шаблон:
/resources/resource.xml
Затем вы должны сделать магию определения принятого типа контента на стороне сервера.
Или использовать Javascript, как предлагает Джеймс.
Я хотел сделать то же самое (веб-сервис RESTful), и я наткнулся на этот аддон firefox, который позволяет вам изменять заголовки accept (фактически, любые заголовки запросов) для запросов. Он отлично работает.
Расширение ModHeader для Google Chrome также является хорошим вариантом. Вы можете просто установить заголовки, которые хотите, и просто ввести URL-адрес в браузере, он автоматически выведет заголовки из расширения, когда вы нажмете на URL-адрес. Только дело в том, что он отправит заголовки для каждого URL-адреса, который вы нажмете, поэтому вам придется отключить или удалить его после использования.
Использовать javascript!
xmlhttp=new XMLHttpRequest(); xmlhttp.open('PUT',http://www.mydomain.org/documents/standards/browsers/supportlist) xmlhttp.send("page content goes here");
Я бы частично не согласился с предложением Милана о включении запрошенного представления в URI.
Если возможно, URI должны использовать только для адресации ресурсов, а не для туннелирования HTTP-методов / глаголов. В конце концов, конкретное деловое действие (изменение, блокировка и т. Д.) Может быть внедрено в URI, если только создание (POST) или обновление (PUT) не служат цели:
POST http://shonzilla.com/orders/08/165;edit
В случае запрашивая конкретное представление в URI, вам нужно будет нарушить ваш дизайн URI, что в конечном итоге сделает его более уродливым, смешивая две разные концепции REST в одном и том же месте (то есть URI) и затрудняя процесс обработки запросов на стороне сервера. Что Милан предлагает, и многие делают то же самое, в том числе. Flickr, это именно так.
Вместо этого более подход RESTful был бы , используя отдельное место для кодирования предпочтительного представления с помощью HTTP-заголовка Accept
, который используется для согласования контента, где клиент сообщает серверу, какие типы содержимого он может обрабатывать / обрабатывать, а сервер пытается выполнить запрос клиента. Этот подход является частью стандарта HTTP 1.1 , совместим с программным обеспечением и поддерживается также веб-браузерами.
Сравните это:
GET /orders/08/165.xml HTTP/1.1 or GET /orders/08/165&format=xml HTTP/1.1
:
GET /orders/08/165 HTTP/1.1 Accept: application/xml
Из веб-браузера вы можете запросить любой тип контента с помощью метода setRequestHeader
объекта XMLHttpRequest
. Например:
function getOrder(year, yearlyOrderId, contentType) { var client = new XMLHttpRequest(); client.open("GET", "/order/" + year + "/" + yearlyOrderId); client.setRequestHeader("Accept", contentType); client.send(orderDetails); }
Подводя итог: адрес, то есть URI ресурса должен быть независим от его представления, а метод XMLHttpRequest.setRequestHeader
позволяет запросить любое представление с помощью Accept
HTTP header.
Приветствия! Shonzilla