如何将对象正确放入 JSONObject 中?

2022-09-01 12:39:30

我正在尝试像这样填充我的JSONObject:

JSONObject json = new JSONObject();
json.put("Command", "CreateNewUser");
json.put("User", user);

user是包含“名字”,“姓氏”等字段的基本类的实例。

看起来我做错了,因为我得到的JSON是这样的:

{
    "Command":"CreateNewUser",
    "User":"my.package.name.classes.User@2686a150"
}

而不是“树”。

我的代码有什么问题?


答案 1

由于您用于表示非基元类型,因此传递给的任何实例都将生成嵌套项(或)。JSONObjectJSONObject.put(Object, Object)

JSONObject main = new JSONObject();
main.put("Command", "CreateNewUser");
JSONObject user = new JSONObject();
user.put("FirstName", "John");
user.put("LastName", "Reese");
main.put("User", user);
{
    "User": {
        "FirstName": "John",
        "LastName": "Reese"
    },
    "Command": "CreateNewUser"
}

答案 2

这将做你想要的!

JSONObject json = new JSONObject();
json.put("Command", "CreateNewUser");
json.put("User", new JSONObject(user));