Программа на Android для загрузки файла .json и получения ответа .json - PullRequest
1 голос
/ 03 марта 2011

Я должен разработать программу для android, которая загружает файл .json в веб-сервис, возвращает ответ в формате .json и анализирует его.Кто-нибудь может сказать мне, как загрузить файл json и любой веб-сервис, который принимает файл .json, проверяет его и возвращает файл .json?спасибо.

Ответы [ 2 ]

1 голос
/ 03 марта 2011

Идеальная настройка будет

Android-приложение <-> GAE

Если вам нужен веб-сервис для проверки вашего файла json ... просто прочитайте содержимое json на сервере в объект JSON, и, если исключение не выдается, вы можете отправлять ответ клиенту.

Я предоставил код, который использует Restlet (restlet.org) с обеих сторон.


Android-приложение


Client client = new Client(Protocol.HTTP);
Request req = new Request();
req.setMethod(Method.POST); // can be Method.GET
req.setResourceRef(new Reference(/* SERVER URL */+ "/jsonservice"));
req.getCookies().add(GAuth.getCookie());
/* Build your JSONObject */
req.setEntity(/* JSONObject */.toString(), MediaType.APPLICATION_JSON);
req.getClientInfo().getAcceptedMediaTypes().add(new Preference<MediaType>(MediaType.APPLICATION_JSON));
Response resp = client.handle(req);
if (resp.getStatus() == Status.SUCCESS_OK)
{
    // resp.getEntity().getText() -> The JSON string returned by GAE
    JSONObject jo=new JSONObject(resp.getEntity().getText());
    /* Use your JSON object */
}

Приложение GAE


GAE: война / WEB-INF / web.xml

<!-- Servlets -->
<servlet>
  <servlet-name>MyApplication</servlet-name>
  <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
  <init-param>
      <param-name>org.restlet.application</param-name>
      <param-value>com.mypackage.MyApplication</param-value>
  </init-param>
</servlet>

<!-- Servlet Mappings -->
<servlet-mapping>
  <servlet-name>MyApplication</servlet-name>
  <url-pattern>/*</url-pattern>
</servlet-mapping>

Рестлет: MyApplication.java

package com.mypackage;

public class MyApplication extends Application
{
  @Override
  public Restlet createInboundRoot()
  {
      Router router = new Router(getContext());
      router.attach("/jsonservice", MyJsonService.class);
      return router;
  }
}

Рестлет: MyRouter.java

package com.mypackage;

public class MyJsonService extends ServerResource
{
  @Post("json:json") // can be @Get("json")
  public Representation jsonProcessor(Representation entity)
  {
      Representation resp = null;
      JSONObject req = (new JsonRepresentation(entity)).getJsonObject();
      /* 
          Do Someting with the JSON object
          .....
          .....
          .....
          Build your JSON response object. 
          You will use this object below.
      */
      setStatus(Status.SUCCESS_OK);
      resp = new JsonRepresentation(/* JSONObject */.toString());
      return resp;
  }
}
0 голосов
/ 03 марта 2011

Загрузка файла JSON не отличается от загрузки любого другого типа файла.Вот пример здесь .В нем объясняется, как загрузить файл на php-сервер.

И http://json.org/ имеет библиотеку java, которую можно использовать для создания / анализа объектов json. Как указано в комментарии ниже, есть библиотека JSON, включенная в Android.

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