通过使用eric restful的REST API,我能够返回以下JSON。XPages,Javascript - 解析所有键的JSON和返回值
{
\t "\"\"": "",
\t "\"AAC\"": "London Marketing",
\t "\"AAD\"": "Broadstairs Marketing",
\t "\"AAE\"": "Matalan Marketing",
\t "\"AAF\"": "Sittingbourne Design"
}
我只能返回的关键之一。
var custList = function() {
\t importPackage(com.eric.restful); \t
\t
\t try{
\t \t var myDoc:NotesDocument = database.getProfileDocument("db",""); \t \t
\t \t var urlStr = myDoc.getItemValueString("mData");
\t \t
\t \t var custListLiteral = CustRestConsumer.GetRestData(urlStr);
\t \t print("list literal: " + custListLiteral);
\t \t
\t \t var getContact = JSON.parse(custListLiteral);
\t \t print("value of AAC: " + getContact["\"AAC\""]);
\t \t
\t }catch(e){
\t \t print("error getting list: " + e.toString());
\t }
\t return getContact["\"AAC\""]; //returns London Marketing
}
custList();
//returns London Marketing
我会想能够返回所有值不传递任何键。
任何帮助将不胜感激。
感谢保罗为回应,我现在已经通过添加下面的方法将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() {
\t importPackage(com.eric.restful); \t
\t
\t try{
\t \t var myDoc:NotesDocument = database.getProfileDocument("db",""); \t \t
\t \t var urlStr = myDoc.getItemValueString("mData");
\t \t
\t \t var custListLiteral = CustRestConsumer.GetRestData(urlStr);
\t \t print("list literal: " + custListLiteral);
\t \t
\t \t var mapList = fromJson(custListLiteral,TT_mapStringString);
\t \t Map<String, String> strObj = CustRestConsumer.jsonToMapStringString(mapList);
\t \t print("strObj: " + strObj);
\t \t
\t \t //var getContact = JSON.parse(custListLiteral);
\t \t //print("value of AAC: " + getContact["\"AAC\""]);
\t \t
\t }catch(e){
\t \t print("error getting list: " + e.toString());
\t }
\t return strObj;
}
我在下面看到一个错误:
error getting list: 'TT_mapStringString' not found
将不胜感激任何输入。谢谢。
供参考:http://dontpanic82.blogspot.sk/2010/09/xpages-ssjs-code-snippet-that-lets-you.html –