gpt4 book ai didi

java - 使用 Gson 生成带有信封/ header 的 JSON 文档

转载 作者:行者123 更新时间:2023-11-30 08:28:49 25 4
gpt4 key购买 nike

我使用 Gson 从 List<Users> 生成 JSON .我想生成一个带有 header /正文结构的 JSON 文档,例如:

{
"count" : 15,
"users" : [
{
"userId" : 149,
"userName" : "jack0231",
"displayName" : "Jackie"
},
{
"userId" : 301,
"userName" : "helms_mighty",
"displayName" : "Hippoman"
}
...
]
}

目前我只是像这样自己写出结构:

StringBuilder jsonResp = new StringBuilder();
jsonResp.append("{\"count\":"+users.size()+",");
jsonResp.append("\"users\":");
Gson gs = new Gson();
jsonResp.append(gs.toJson(users));
jsonResp.append("}");

是否有更好的/内置的方法来做到这一点?谢谢!

最佳答案

这就是您所需要的。如果将列表放在另一个(简单的)类中,则可以在一个步骤中正确序列化,避免 StringBuilder 的所有样板。你可以直接运行这个例子。

package stackoverflow.questions.q19966529;

import java.util.*;

import com.google.gson.Gson;

public class Q19966529 {

public static class User{
Long userId;
String userName;
String displayName;

public User(Long userId, String userName, String displayName){
this.userId = userId;
this.userName = userName;
this.displayName = displayName;
}
}

public static class UserList{
private List<User> list = new ArrayList<>(); //java 7
private int count = 0;

public void addUser(User u){
list.add(u);
count = list.size();

}
}

public static void main(String[] args) {

UserList ul = new UserList();
ul.addUser(new User(149L, "jack0231", "Jackie"));
ul.addUser(new User(301L, "helms_mighty", "Hippoman"));

String json = new Gson().toJson(ul);
System.out.println(json);
}

}

这是结果:

{"list":[{"userId":149,"userName":"jack0231","displayName":"Jackie"},{"userId":301,"userName":"helms_mighty","displayName":"Hippoman"}],"count":2}

要看到它像您的示例一样格式化,您需要一个外部格式化程序,如 this

关于java - 使用 Gson 生成带有信封/ header 的 JSON 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19966529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com