java - 将 Notes 字段转换为 JsonJavaArray
问题描述
在我的 XPages 应用程序中,我使用 com.ibm.commons.util.io.json.JsonJavaObject 类作为联系人详细信息列表(电话列表)。
我要绑定到重复控件的对象,该控件将显示联系人的所有联系人详细信息。
我想将 JsonJavaArray 的值保存到 Notes 字段,当我通过 XPage 显示文档时,我想再次读取它,因此我必须对其进行转换。
以下是 json 在字段中的保存方式:
{
"locations": [
{
"lat": "23.053",
"long": "72.629",
"location": "ABC",
"address": "DEF",
"city": "Ahmedabad",
"state": "Gujrat",
"phonenumber": "1234567"
},
{
"lat": "23.053",
"long": "72.629",
"location": "ABC",
"address": "DEF",
"city": "Ahmedabad",
"state": "Gujrat",
"phonenumber": "1234567"
},
{
"lat": "23.053",
"long": "72.629",
"location": "ABC",
"address": "DEF",
"city": "Ahmedabad",
"state": "Gujrat",
"phonenumber": "1234567"
},
{
"lat": "23.053",
"long": "72.629",
"location": "ABC",
"address": "DEF",
"city": "Ahmedabad",
"state": "Gujrat",
"phonenumber": "1234567"
},
{
"lat": "23.053",
"long": "72.629",
"location": "ABC",
"address": "DEF",
"city": "Ahmedabad",
"state": "Gujrat",
"phonenumber": "1234567"
}
]
}
这是我读取字段并将其转换为 jsonobject 并读取数组的方式:
String codeString = doc.getItemValueString(fieldName);
JsonJavaObject objJson = new JsonJavaObject(codeString);
JsonJavaArray arrJson = objJson.getAsArray("locations");
我得到的错误如下:
com.ibm.commons.util.io.json.JsonJavaObject 中的错误,第 56 行:java.lang.ArrayIndexOutOfBoundsException:数组索引超出范围:1
有人可以解释我做错了什么吗?
解决方案
您应该使用 JsonParser 从 String 对象创建 JSON 对象,例如
JsonJavaObject objJson = (JsonJavaObject) JsonParser.fromJson(JsonJavaFactory.instanceEx, codeString);
更多示例可以在这里找到:
https://www.programcreek.com/java-api-examples/?api=com.ibm.commons.util.io.json.JsonParser
推荐阅读
- spring-batch - Spring Batch - OutOfMemoryError
- karate - 空手道 UI:处理来自另一个功能文件的身份验证
- javascript - 每次打开时重复的模态数
- linux - Sudoer 没有为 python3 使用相同的环境
- javascript - Webpack:库的预构建生命周期钩子
- python - 如何在 Python PyPi 正则表达式模式中引用命名捕获组
- c++ - 作为方法参数的静态方法(作为 lambda)
- node.js - 当用户连接 nodejs mongodb Stripe 时解锁具有永久访问权限的视频教程
- java - KafkaJaasLoginModuleInitializer 缓存登录配置导致问题
- php - Jquery / Ajax 表单提交不会转发 POST 数据