什么是最好的json pojo转换器
这里我列出了一些json到pojo转换java api什么是最好的json pojo转换器,json,jackson,gson,pojo,java,Json,Jackson,Gson,Pojo,Java,这里我列出了一些json到pojo转换java api 格森 杰克逊 琼根 JSON工具 请根据这些api的性能和易用性列出它们。另外,请告诉我是否有其他java api比上述更好,这主要取决于您开发的应用类型的上下文,它位于客户端(例如Android)或服务器端(例如SpringMVC)。这是我的经验,也许有人有更多的观点来证明我。我总是在SpringMVC服务器中使用Jackson,为什么?因为它很简单,当您开发RESTfull Web服务时,您将系统的管理权留给SpringMVC,例如重定
请根据这些api的性能和易用性列出它们。另外,请告诉我是否有其他java api比上述更好,这主要取决于您开发的应用类型的上下文,它位于客户端(例如Android)或服务器端(例如SpringMVC)。这是我的经验,也许有人有更多的观点来证明我。我总是在SpringMVC服务器中使用Jackson,为什么?因为它很简单,当您开发RESTfull Web服务时,您将系统的管理权留给SpringMVC,例如重定向请求、执行业务逻辑等等。然后,您将有两个servlet,一个用于管理页面请求(如go to),另一个用于公开RESTfull api的servlet,这就是Jackson enter的位置,正如您所知(或可能不知道),在Tomcat中运行的所有webapps都有一个web.xml,在这里,您告诉Tomcat实例谁是servlet,它将处理什么请求,请检查以下示例:
<!-- Spring MVC Dispatcher Servlet -->
<servlet>
<servlet-name>SpringMvcServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:config/applicationContext.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMvcServlet</servlet-name>
<url-pattern>/home/*</url-pattern>
</servlet-mapping>
<!-- Jersey -->
<servlet>
<servlet-name>jersey-serlvet</servlet-name>
<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>ar.com.kimboo.server.rest</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
坏消息是你必须把几乎所有的东西都包装在一个对象中。例如,您不能执行类似于new Gson().fromJson(string,string.class)
的操作。但它非常灵活,我强烈建议在Android应用程序中使用它
长话短说,这就是我对json技术的全部了解,希望这对您有所帮助。:) 这主要取决于您开发的应用类型的上下文,它是在客户端(例如Android)还是在服务器端(例如SpringMVC)。这是我的经验,也许有人有更多的观点来证明我。我总是在SpringMVC服务器中使用Jackson,为什么?因为它很简单,当您开发RESTfull Web服务时,您将系统的管理权留给SpringMVC,例如重定向请求、执行业务逻辑等等。然后,您将有两个servlet,一个用于管理页面请求(如go to),另一个用于公开RESTfull api的servlet,这就是Jackson enter的位置,正如您所知(或可能不知道),在Tomcat中运行的所有webapps都有一个web.xml,在这里,您告诉Tomcat实例谁是servlet,它将处理什么请求,请检查以下示例:
<!-- Spring MVC Dispatcher Servlet -->
<servlet>
<servlet-name>SpringMvcServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:config/applicationContext.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMvcServlet</servlet-name>
<url-pattern>/home/*</url-pattern>
</servlet-mapping>
<!-- Jersey -->
<servlet>
<servlet-name>jersey-serlvet</servlet-name>
<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>ar.com.kimboo.server.rest</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
坏消息是你必须把几乎所有的东西都包装在一个对象中。例如,您不能执行类似于new Gson().fromJson(string,string.class)
的操作。但它非常灵活,我强烈建议在Android应用程序中使用它
长话短说,这就是我对json技术的全部了解,希望这对您有所帮助。:) @eugen好吗?你用过吗?看看这里的一些基准和特性@eugen它好吗?你用过吗?看看这里的一些基准和特性
public class HttpFuck {
Gson gson = new Gson();
public <T> T post(String url, Class<T> clazz, List<NameValuePair> parameters) {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
try {
// Add your data
httppost.setEntity(new UrlEncodedFormEntity(parameters));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
StringBuilder json = inputStreamToString(response.getEntity().getContent());
T gsonObject = gson.fromJson(json.toString(), clazz);
return gsonObject;
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public <T> T get(String url, Class<T> clazz) {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpGet httppost = new HttpGet(url);
try {
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
StringBuilder json = inputStreamToString(response.getEntity().getContent());
T gsonObject = gson.fromJson(json.toString(), clazz);
return gsonObject;
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
// Fast Implementation
private StringBuilder inputStreamToString(InputStream is) throws IOException {
String line = "";
StringBuilder total = new StringBuilder();
// Wrap a BufferedReader around the InputStream
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
// Read response until the end
while ((line = rd.readLine()) != null) {
total.append(line);
}
// Return full string
return total;
}
}