gpt4 book ai didi

java - 使用 JsonGenerator 将字符串映射为 JSON

转载 作者:行者123 更新时间:2023-12-01 18:13:53 24 4
gpt4 key购买 nike

给出的是一个 JSON 数组

[
{
"ref": "idValue",
"data": {
"filter": [
{
"property": "number"
}
],
"stateId": "contacts"
}
}
]

我将此数组作为字符串存储在数据库中。

现在我想将给定的字符串嵌入到由 javax.json.stream.JsonGenerator 动态生成的新 JSON 对象中。

可能的结果应如下所示:

{
"newValue": "someValue",
"storedFilters": [
{
"ref": "idValue",
"data": {
"filter": [
{
"property": "number"
}
],
"stateId": "contacts"
}
}
]
}

有可能实现这一目标吗?

我的方法:

String jsonStringValue = ... // Contains JSON content of a previous request
HttpServletResponse resp = ...
List<Event> events = ...
OutputStream os = resp.getOutputStream();
Map<String, Boolean> config = new HashMap<String, Boolean>();
if (prettyPrint) {
config.put(JsonGenerator.PRETTY_PRINTING, Boolean.TRUE);
}
JsonGeneratorFactory jgf = Json.createGeneratorFactory(config);
JsonGenerator jg = jgf.createGenerator(os);

if (events.size() > 1) {
jg.writeStartArray();
}

// Some generic stuff happens here which is based on the 'events' list

jg.writeStartObject();
jg.write(JsonConstants.FILTERS, jsonStringValue);
jg.writeEnd();

if (events.size() > 1) {
jg.writeEnd();
}

但这最终会进入一个仅包含引号中的字符串值的字段。

最佳答案

您可以静态创建一个 JSON 对象,如下所示

{
"newValue": "someValue",
"storedFilters": []
}

然后您可以将 javax.json.stream.JsonGenerator 生成的值动态添加到 JSON 数组 storedFilters 中。

关于java - 使用 JsonGenerator 将字符串映射为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60409548/

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