【发布时间】:2017-03-02 11:36:52
【问题描述】:
通过使用 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);
}
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;
}
我收到以下错误:
error getting list: 'TT_mapStringString' not found
将不胜感激任何意见。谢谢。
【问题讨论】:
标签: javascript json xpages lotus-domino xpages-ssjs