我在我的java服务器上有这样的代码:
JSONArray resultJson = new JSONArray();
try{
ConnectToDB();
stmt = conn.prepareStatement(query);
m_ResultSet = stmt.executeQuery();
resultJson = FromDBToJSON.toJSON(m_ResultSet);
}我得到的结果是:
id: 1,
dest_country: "England",
fname: "Duncan",
lname: "Hurley",
address: "xyz"
},
{
id: 2,
dest_country: "England",
fname: "Duncan",
lname: "Hurley",
address: "xyz"
},
{
id: 3,
dest_country: "Israel",
fname: "Duncan",
lname: "Hurley",
address: "xyz"
},
{
id: 4,
dest_country: "USA",
fname: "Duncan",
lname: "Hurley",
address: "xyz"
},我需要将所有用户数据(即fname、lname、address)放入一个嵌套属性中,例如:
{
id : 2,
dest_country: "England",
user: {
fname: "Duncan",
lname: "Hurley",
address: "xyz"
}
}如何才能做到这一点?
谢谢!
发布于 2015-01-29 23:05:38
您的类必须像这样构造:
class User{
public string fname;
public string lname;
public string address;
}
class ResultType{
public int id;
public string dest_country;
public User user;
}这应该会在解析为JSON时生成您想要的结果。json基于当前的类结构,因此您想要在嵌套属性中的用户必须从prooperty生成,prooperty是包含该数据的对象。
另一种方法是在事后重建json数据,但这不是很整洁。如下所示:
result.each(function(){
this.user = { fname: this.fname, lname: this.lname, address: this.address };
});发布于 2015-01-30 00:39:40
使用,尝试以下代码:
JSONArray resultJson = new JSONArray();
try{
ConnectToDB();
stmt = conn.prepareStatement(query);
m_ResultSet = stmt.executeQuery();
while (m_ResultSet.next()) {
JsonObject userObject= Json.createObjectBuilder()
.add("fname", m_ResultSet.getString("fname")
.add("lname", m_ResultSet.getString("lname")
.add("adress", m_ResultSet.getString("adress").build();
JsonObject resultJson = Json.createObjectBuilder()
.add("id", m_ResultSet.getInt("id"))
.add("dest_country", m_ResultSet.getString("dest_country"))
.add("user", userObject).build();
}这应该就行了。
https://stackoverflow.com/questions/28217677
复制相似问题