代码之家  ›  专栏  ›  技术社区  ›  Malin

将notes字段转换为jsonjavaarray

  •  0
  • Malin  · 技术社区  · 7 年前

    在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

    有人能解释一下我做错了什么吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Patrick Kwinten    7 年前

    您应该使用jsonparser从字符串对象创建json对象,例如。

    JsonJavaObject objJson = (JsonJavaObject) JsonParser.fromJson(JsonJavaFactory.instanceEx, codeString);
    

    更多的例子可以在这里找到:

    https://www.programcreek.com/java-api-examples/?api=com.ibm.commons.util.io.json.JsonParser