如何将json从java传递到javascript函数
我从数据库中生成一个json字符串,并将其传递给javascript函数,然后将其打印到html表中。我使用angular来轻松打印表,但我不知道如何将数据从java发送到javascript。 这就是我在java中尝试的如何将json从java传递到javascript函数,javascript,java,html,angularjs,json,Javascript,Java,Html,Angularjs,Json,我从数据库中生成一个json字符串,并将其传递给javascript函数,然后将其打印到html表中。我使用angular来轻松打印表,但我不知道如何将数据从java发送到javascript。 这就是我在java中尝试的 public void jsonRetr (String numeRepo) throws SQLException { String sql = "SELECT * FROM " + numeRepo; PreparedStatement prStm = (
public void jsonRetr (String numeRepo) throws SQLException {
String sql = "SELECT * FROM " + numeRepo;
PreparedStatement prStm = (PreparedStatement) conn.prepareStatement(sql);
ResultSet rs = prStm.executeQuery(sql);
ArrayList<PersoaneJSON> persoane = new ArrayList<PersoaneJSON>();
while (rs.next()) {
String id = rs.getString("id");
String login_name = rs.getString("login_name");
String email = rs.getString("email");
String public_gits = rs.getString("public_gits");
String Html_profile = rs.getString("Html_profile");
String Avatar_URL = rs.getString("Avatar_URL");
PersoaneJSON persoana = new PersoaneJSON(id, login_name, email, public_gits, Html_profile, Avatar_URL);
persoane.add(persoana);
}
Gson gson = new Gson();
String json = gson.toJson(persoane);
}
您必须将Javaservlet与WebMethod一起使用,因此调用该方法可以返回包含数据的JSON对象 范例 Java代码: ApplicationConfig.java
package example;
import java.util.Set;
import javax.ws.rs.core.Application;
@javax.ws.rs.ApplicationPath("webresources")
public class ApplicationConfig extends Application
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> resources = new java.util.HashSet<>();
resources.add(QueryResource.class);
return resources;
}
}
现在,在js中,您可以在控制器内部创建一个连接到Servlet的函数,将$http对象像$scope一样传递给控制器
$http.get("http://localhost:8086/example/webresources/query/employee").success(function (data) {
console.log(JSON.parse(data));
}).error(function () {
console.error('error');
});
在web.xml中,必须设置如下配置:
<servlet-mapping>
<servlet-name>RESTServlet</servlet-name>
<url-pattern>/webresources/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>RESTServlet</servlet-name>
<servletclass>org.glassfish.jersey.servlet.ServletContainer</servletclass>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>example.ApplicationConfig</param-value>
</init-param>
</servlet>
RESTServlet
/网络资源/*
RESTServlet
org.glassfish.jersey.servlet.ServletContainer
javax.ws.rs.Application
example.ApplicationConfig
您需要这些依赖项:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.26-b01</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.26-b01</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>compile</scope>
</dependency>
爪哇
javaeewebapi
7
假如
org.glassfish.jersey.containers
jersey容器servlet
2.26-b01
org.glassfish.jersey.media
泽西媒体公司
2.26-b01
javax.servlet
javax.servlet-api
3.1.0
编译
希望这有帮助我对您的代码做了一些更改(您可以随意应用) 使用jquery并读取json对象,如下所示
$.getJSON( "Action/Servlet", function( data ) {
console.log(JSON.parse(data));
});
到目前为止,您实际上没有发送任何内容,但使用Gson进行格式化已经足够好了。因此,我如何对数据进行沙化,这对我来说是个问题,因为我是一个初学者,不知道如何开始@M.prokhorovv。您也可以尝试将您的对象解析为json。
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.26-b01</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.26-b01</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>compile</scope>
</dependency>
public ArrayList<PersoaneJSON> jsonRetr (String numeRepo) throws SQLException {
String sql = "SELECT * FROM " + numeRepo;
PreparedStatement prStm = (PreparedStatement) conn.prepareStatement(sql);
ResultSet rs = prStm.executeQuery(sql);
ArrayList<PersoaneJSON> persoane = new ArrayList<PersoaneJSON>();
while (rs.next()) {
String id = rs.getString("id");
String login_name = rs.getString("login_name");
String email = rs.getString("email");
String public_gits = rs.getString("public_gits");
String Html_profile = rs.getString("Html_profile");
String Avatar_URL = rs.getString("Avatar_URL");
PersoaneJSON persoana = new PersoaneJSON(id, login_name, email, public_gits, Html_profile, Avatar_URL);
persoane.add(persoana);
}
return persoane;
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
response.setContentType("application/json;charset=utf-8");
Gson gson = new Gson();
String json = gson.toJson(jsonRetr("xyz"));
out.write(json);
out.close();
}
$.getJSON( "Action/Servlet", function( data ) {
console.log(JSON.parse(data));
});