Java 将Resultset数据绑定到Getter Setter方法以形成JSON字符串
我正在尝试使用GSON形成一个JSON。 但是我的最终JSON格式返回null。我的结果集包含所有可用数据,但从resultset格式JSON时问题仍然存在 任何帮助,我的代码如下 我的DAO类——ServiceAccessJava 将Resultset数据绑定到Getter Setter方法以形成JSON字符串,java,android,rest,jersey,Java,Android,Rest,Jersey,我正在尝试使用GSON形成一个JSON。 但是我的最终JSON格式返回null。我的结果集包含所有可用数据,但从resultset格式JSON时问题仍然存在 任何帮助,我的代码如下 我的DAO类——ServiceAccess package com.rest.bean; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.Res
package com.rest.bean;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import org.codehaus.jackson.annotate.JsonProperty;
import com.rest.constants.Constants;
public class ServiceAccess
{
public ArrayList<ServiceBean> GetServices() throws Exception
{
ArrayList<ServiceBean> feedServices = new ArrayList<ServiceBean>();
try
{
Connection con;
Statement stmt=null;
Class.forName(Constants.dbClass);
con = DriverManager.getConnection("jdbc:oracle:thin:@XX.XX.XX.XXX:152X:orcl10g","XXXX","XXXXX");
stmt = (Statement) con.createStatement();
String sqlQuery1="select SSCODE as SERVICECODE,SSDESC as SERVICEDESC from ksubservice order by SSCODE";
System.out.println("printing sql query1 :"+sqlQuery1);
ResultSet rst = stmt.executeQuery(sqlQuery1);
while (rst.next())
{
ServiceBean ServiceObjects=new ServiceBean();
ServiceObjects.setServiceCode(rst.getString("SERVICECODE").toString());
ServiceObjects.setServiceDesc(rst.getString("SERVICEDESC").toString());
}
System.out.println(feedServices);
return feedServices;
}
catch(Exception e)
{
throw e;
}
}
}
我的模型类——ServiceArray
package com.rest.bean;
import java.util.ArrayList;
import com.rest.database.DBConnection;
public class ServiceArray
{
public ArrayList<ServiceBean> GetServices()throws Exception
{
ArrayList<ServiceBean> serviceData = null;
try
{
ServiceAccess accessObjects=new ServiceAccess();
serviceData=accessObjects.GetServices();
}
catch (Exception e)
{
throw e;
}
return serviceData;
}
}
package com.rest.bean;
导入java.util.ArrayList;
导入com.rest.database.DBConnection;
公共类服务数组
{
公共ArrayList GetServices()引发异常
{
ArrayList serviceData=null;
尝试
{
ServiceAccess访问对象=新建ServiceAccess();
serviceData=accessObjects.GetServices();
}
捕获(例外e)
{
投掷e;
}
返回服务数据;
}
}
我的JsonObject转换器类
package com.rest.bean;
import java.util.ArrayList;
import com.google.gson.Gson;
import com.rest.bean.ServiceBean;
public class DataTransformer
{
public static String DataFeed(ArrayList<ServiceBean> feedData)
{
String feeds = null;
Gson gson = new Gson();
feeds = gson.toJson(feedData);
return feeds;
}
}
package com.rest.bean;
导入java.util.ArrayList;
导入com.google.gson.gson;
导入com.rest.bean.ServiceBean;
公共类数据转换器
{
公共静态字符串数据源(ArrayList feedData)
{
字符串feed=null;
Gson Gson=新的Gson();
feed=gson.toJson(feedData);
回馈;
}
}
以下是我对Gson的最佳使用,也许它会有所帮助
对于本例,Json回复是字符串web响应的形式:
注意:reply是一个包含json数据的字符串
注意:JsonClass是一个普通的类实现,包含与回复中的Json元素匹配的属性
JSONArray array = new HttpManager().getJsonArrayFromReply(reply);
for (int i = 0; i < array.length(); i++) {
JSONObject jsonObject = null;
try {
jsonObject = (JSONObject) array.get(i);
} catch (JSONException e) {
return null;
}
Gson gson = new Gson();
JsonClass jsonClass = gson.fromJson(jsonObject.toString(), JsonClass.class);
}
JSONArray数组=新的HttpManager().getjsonarrayfrompreply(reply);
对于(int i=0;i
Json Http请求
String url = "http://www.myurl.com/data.php";
BufferedReader inStream = null;
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpRequest = new HttpGet(url);
try {
HttpResponse response = httpClient.execute(httpRequest);
inStream = new BufferedReader(
new InputStreamReader(
response.getEntity().getContent()));
StringBuffer buffer = new StringBuffer("");
String line = "";
while ((line = inStream.readLine()) != null) {
buffer.append(line);
}
inStream.close();
reply = buffer.toString();
} catch (Exception e) {
//Handle Exception
}
如果json回复是从url发出的,则应该会得到json回复欢迎使用堆栈溢出。为了从这里提问中获得最佳结果,请花一点时间回顾并改进您的问题。您好,GreenAsJade,我的问题已全部结束,需要帮助。您好,Johan V,我还无法形成JSON字符串,因此我得到的web服务回复为NULL。好,你尝试过在浏览器中获取数据的链接,看看是否出现JSON回复,如果是的话,你是否考虑使用截击来进行网络请求?如果你需要截击方面的帮助,请告诉我,同时我在Android中发布了你默认的json http请求,请尝试我的新答案,以从Web服务获取json回复。一旦你有了字符串形式的json回复,你就可以继续使用gson作为我以前的答案Johan V,我将使用gson,因为我用string writer创建了一个jsonArray,我可以在我的android设备中读取json。但是由于数据是批量的,大约还有500条记录,服务将结束。我在某个地方读到gson可以处理批量数据。我没有尝试过截取。它可以处理批量数据吗?
String url = "http://www.myurl.com/data.php";
BufferedReader inStream = null;
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpRequest = new HttpGet(url);
try {
HttpResponse response = httpClient.execute(httpRequest);
inStream = new BufferedReader(
new InputStreamReader(
response.getEntity().getContent()));
StringBuffer buffer = new StringBuffer("");
String line = "";
while ((line = inStream.readLine()) != null) {
buffer.append(line);
}
inStream.close();
reply = buffer.toString();
} catch (Exception e) {
//Handle Exception
}