首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JAVA中-如何将json数据插入到嵌套的json属性中?

在JAVA中-如何将json数据插入到嵌套的json属性中?
EN

Stack Overflow用户
提问于 2015-01-29 22:55:24
回答 2查看 1.2K关注 0票数 3

我在我的java服务器上有这样的代码:

代码语言:javascript
复制
JSONArray resultJson = new JSONArray();
try{
    ConnectToDB();
    stmt = conn.prepareStatement(query);
    m_ResultSet = stmt.executeQuery();
    resultJson = FromDBToJSON.toJSON(m_ResultSet);
    }

我得到的结果是:

代码语言:javascript
复制
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)放入一个嵌套属性中,例如:

代码语言:javascript
复制
{
    id : 2,
    dest_country: "England",
    user: {
        fname: "Duncan",
        lname: "Hurley",
        address: "xyz"
    }
}

如何才能做到这一点?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2015-01-29 23:05:38

您的类必须像这样构造:

代码语言:javascript
复制
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数据,但这不是很整洁。如下所示:

代码语言:javascript
复制
result.each(function(){
    this.user = { fname: this.fname, lname: this.lname, address: this.address };
});
票数 0
EN

Stack Overflow用户

发布于 2015-01-30 00:39:40

使用,尝试以下代码:

代码语言:javascript
复制
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();
}

这应该就行了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28217677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档