通过使用eric restful的REST API,我能够返回以下JSON。
{
"\"\"": "",
"\"AAC\"": "London Marketing",
"\"AAD\"": "Broadstairs Marketing",
"\"AAE\"": "Matalan Marketing",
"\"AAF\"": "Sittingbourne Design"
}

我只能返回其中一个键。
var custList = function () {
importPackage(com.eric.restful);
try{
var myDoc:NotesDocument = database.getProfileDocument("db","");
var urlStr = myDoc.getItemValueString("mData");
var custListLiteral = CustRestConsumer.GetRestData(urlStr);
print("list literal: " + custListLiteral);
var getContact = JSON.parse(custListLiteral);
print("value of AAC: " + getContact["\"AAC\""]);
}catch(e){
print("error getting list: " + e.toString());
}
return getContact["\"AAC\""]; //returns London Marketing
}

custList();
//returns London Marketing

我希望能够在不传递任何密钥的情况下返回所有值。
任何帮助将不胜感激。
感谢Paul的回复,我现在通过将以下方法添加到CustRestConsumer类来实现地图:
private static final Gson gson = new GsonBuilder().disableHtmlEscaping().create();
private static final Type TT_mapStringString = new TypeToken<Map<String,String>>(){}.getType();
public static Map<String, String> getJsonArray(String json) {
Map<String, String> ret = new HashMap<String, String>();
if (json == null || json.isEmpty())
return ret;
return gson.fromJson(json, TT_mapStringString);
}
&#13;
var custList = function () {
importPackage(com.eric.restful);
try{
var myDoc:NotesDocument = database.getProfileDocument("db","");
var urlStr = myDoc.getItemValueString("mData");
var custListLiteral = CustRestConsumer.GetRestData(urlStr);
print("list literal: " + custListLiteral);
var mapList = fromJson(custListLiteral,TT_mapStringString);
Map<String, String> strObj = CustRestConsumer.jsonToMapStringString(mapList);
print("strObj: " + strObj);
//var getContact = JSON.parse(custListLiteral);
//print("value of AAC: " + getContact["\"AAC\""]);
}catch(e){
print("error getting list: " + e.toString());
}
return strObj;
}
&#13;
我在下面收到错误:
error getting list: 'TT_mapStringString' not found
将欣赏任何输入。感谢。
答案 0 :(得分:1)
如果您愿意使用Java库,那么好消息是IBM已经为您完成了大量工作。查看.cshtml
和com.ibm.commons.util.io.json.JsonParser
课程。这些允许将JSON字符串解析为Java Map。在OpenNTF Domino API Demo Servlet中,我使用以下代码:
com.ibm.commons.util.io.json.JsonFactory
&#34;主体&#34;是从REST服务输入中提取的JSON字符串。您可能会遇到第一个元素的问题,因为它没有属性名称,但它没有任何值。