首页 > 解决方案 > 将 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

有人可以解释我做错了什么吗?

标签: javajsonxpages

解决方案


您应该使用 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


推荐阅读