gpt4 book ai didi

java - 如何使用属性作为键将对象列表转换为 JSON 对象?

转载 作者:行者123 更新时间:2023-12-02 01:22:50 25 4
gpt4 key购买 nike

我有一个来自特定类的对象的列表,这些对象具有name字段。我正在尝试将此列表转换为 JSON 对象,其中属性键将是该字段的 name,并且值始终设置为 null

我的最终 JSON 应如下所示:

{
"Java": null,
"React": null,
"Spring": null
}

我的类(class)是这样的:

public class Tag {
private Long id;
private String name; // Java, Spring, React

// setters and getters omited
}

我尝试使用以下代码对其进行转换:

ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
String json = ow.writeValueAsString(tagList);

但这只是返回一个 JSON 对象数组。

如何将我的列表转换为上述结构?

最佳答案

要么使用 json 库并手动创建 JSON,要么使用更高级别的库,例如 JacksonGson

根据更新的问题,以下是基于 json 库的代码,可生成所需的输出:

{"Java":null,"Spring":null}
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;

public class TagConverter {
public static void main(String[] args) {
List<Tag> tags = new ArrayList<>();
Tag t1 = new Tag("Java");
Tag t2 = new Tag("Spring");
tags.add(t1);
tags.add(t2);
JSONObject json = new JSONObject();
for(Tag t : tags){
json.put(t.name, JSONObject.NULL);
}

System.out.println(json);
}

private static class Tag{
public Long id;
public String name;

public Tag(String name){
this.name = name;
}
}
}

添加 Maven 依赖项或从 maven 获取库:

<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180813</version>
</dependency>

关于java - 如何使用属性作为键将对象列表转换为 JSON 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57399463/

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