【问题标题】:How does one convert the following hashMap<String, String> to a usable JS object?如何将以下 hashMap<String, String> 转换为可用的 JS 对象?
【发布时间】:2017-12-10 03:01:11
【问题描述】:

长话短说。

我们的后端团队为我提供了一个 hashMap,它具有以下输出。

{12=其他服务(辅助)、2=其他服务、4=收集、17=获取新服务(为我服务)、19=获取新服务(为我的企业服务)}

我是前端开发人员,从未使用过这样的字符串。由于'='

,我无法使用 jquery.split() 拆分它

在线搜索我找到了很多我的问题的答案,但如果它实际上是我问题的正确答案,我无法让它发挥作用。

以下是我尝试过的。 ${departmentHash} 就是一个例子。我想我的实际代码不会有什么不同。

How to iterate HashMap using JSTL forEach loop?

<c:forEach var="department" items="${departmentHash}">
    Country: ${department.key}  - Capital: ${department.value}
</c:forEach>

上面没有返回任何东西到 ${department}

其他链接有类似的答案,我无法开始工作。

How to loop through a HashMap in JSP?
How to iterate an ArrayList inside a HashMap using JSTL?

我的问题可能措辞有误,所以如果有人有正确的链接或回答我的问题,将不胜感激。

【问题讨论】:

  • 转成json
  • 你的意思是你不能在, 上拆分它然后在= 每个结果上得到一个键/值数组?有点奇怪
  • @ScaryWombat 我们需要在后端这样做吗?由于'=',在前端遇到了麻烦
  • @AxelH 谢谢,我尝试了拆分,但它在“=”处中断。后端人员拒绝转义字符。
  • 我们需要在后端这样做吗?我认为这将是最简单的

标签: javascript java jquery html jstl


【解决方案1】:

由于关键部分中的整数(12、2、4 等),无法解析您提供的字符串。

如果您以字符串的形式获取 hashmap 数据,您可以在 javascript 中尝试如下操作:

var str = '{12=Other Services (Assisted), 2=Other Services, 4=Collect, 17=Get New (For Me), 19=Get New (For My Business)}';

str = str.replace('{','');
str = str.replace('}','');// these lines will remove the leading and trailing braces

var arr = str.split(','); // this will give you an array of strings with each index in the format "12=Other Services (Assisted)"

arr.forEach(function(item){
    // here you can split again with '=' and do what is required
    var s = item.split('=');
    var obj = {key: s[0], value:s[1]}; // this is up to your implementation

})

【讨论】:

  • 非常感谢。不得不稍微调整一下,但这正是我完成它所需要的。
  • 很高兴知道这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-01
  • 1970-01-01
  • 2013-06-17
  • 2016-06-27
  • 2014-07-20
相关资源
最近更新 更多