gpt4 book ai didi

java - Map中的Json对象,在java中如何获取它?

转载 作者:行者123 更新时间:2023-12-02 10:50:28 26 4
gpt4 key购买 nike

在 XPage 应用程序中,我在 sessionScope 变量中有 JSON 格式的应用程序配置。

我想知道如何在 Java 中再次获得此配置?

我尝试过:

Map<String, Object> sesScope = ExtLibUtil.getSessionScope();
if (null != sesScope.get("configJSON")){
JsonJavaObject jsonObject = new JsonJavaObject();
jsonObject = (JsonJavaObject) sesScope.get("configJSON");
System.out.println("got object?");
System.out.println("json " + jsonObject.toString());
}

在控制台中我从来没有到达“得到对象?”打印声明。我做错了什么?

最佳答案

您使用的 JavaScript 方法 JSON.parse 仅返回一个简单的 JavaScript 对象,而不是 JsonJavaObject。如果没有额外的不必要的开销,您不能稍后在 Java 中使用 JavaScript 对象。不要使用 json2.jss,而是使用 JsonParser,就像 Paul Withers 所说的那样。

更改从 Notes 字段获取 JSON 的代码:

#{javascript:
importPackage(com.ibm.commons.util.io.json);
var jsonText = doc.getItemValueString(itemname);
var jsonFactory:JsonFactory = JsonJavaFactory.instanceEx;
var jsonObject = JsonParser.fromJson(jsonFactory, jsonText);
sessionScope.put('configJSON', jsonObject);
}

通过删除不必要的行来修改您提供的 java 代码:

Map<String, Object> sesScope = ExtLibUtil.getSessionScope();
if (null != sesScope.get("configJSON")) {
JsonJavaObject jsonObject = (JsonJavaObject) sesScope.get("configJSON");
System.out.println("got object?");
System.out.println("json " + jsonObject.toString());
}

你现在应该没问题了。提示:如果您使用 JsonJavaFactory.instance 而不是 JsonJavaFactory.instanceEx,您将得到 java.util.HashMap 而不是 JsonJavaObject

关于java - Map中的Json对象,在java中如何获取它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52222755/

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