我应该在android中开发一个程序,将.json文件上传到webservice&以.json格式获取回复解析它。任何人都可以告诉我如何上传json文件&任何带有.json文件的web服务,验证它和&返回一个.json文件?感谢。
答案 0 :(得分:1)
理想的设置是
Android App< - > GAE
如果你需要web服务来检查你的json文件...只需将服务器上的json内容读入JSON对象,如果没有抛出异常,你就可以使用对客户端的响应。< / p>
我提供了双方使用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 App
GAE:war / 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>
Restlet: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; } }
Restlet: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; } }
答案 1 :(得分:0)
上传json文件与上传任何其他文件类型没有区别。有一个例子here。它解释了如何将文件上传到php服务器。
http://json.org/有一个java库,可以用来创建/解析json对象。正如下面的注释所指出的,android中包含一个json库。