我存储JSP一个HashMap中hiddeninput元素将存储在hiddenput以JSON在JS
如何可以解析它变成我的javascript JSON对象的地图?
,当我在我的JS输出打印隐藏的输入变量的值是这样的:
{zipcode=560036, fmid=xyz, quantity=1}
我存储JSP一个HashMap中hiddeninput元素将存储在hiddenput以JSON在JS
如何可以解析它变成我的javascript JSON对象的地图?
,当我在我的JS输出打印隐藏的输入变量的值是这样的:
{zipcode=560036, fmid=xyz, quantity=1}
这是更好地从服务器传递JSON string
这样你就可以轻松地分析。如果你有这样一个简单的对象结构(你的例子),你可以尝试拆分它,并采取eack键/值对。这里是一个例子
var mapAsStr = "{zipcode=560036, fmid=xyz, quantity=1}";
var convertToObj = function(str) {
var obj = {};
str.replace(/\{|\}/g, '').split(',').forEach(function(pair) {
var keyVal = pair.split("=");
var key = keyVal[0].trim();
var val = keyVal[1].trim();
val = isNaN(val) ? val : parseFloat(val);
obj[key] = val;
});
return obj;
}
console.log(convertToObj(mapAsStr));
但要注意,你可以用这个仅进行,如果你有原始值的平面物体的结构。
嗨,这个作品,但我有一个问题:这是做什么? “str.replace(/ \ {| \}/g,'')”。另外为什么我们要解析val来浮动?:“parseFloat(val);” – user2696258
而你的意思是“这只有当你有一个带有原始值的扁平物体结构”?我在我的JSP中设置了一个HashMap,并且这个maP将永远像给出这个问题一样。我不明白你在这里的原始值是什么意思,这些可以是任何正确的? – user2696258
@ user2696258'str.replace(/ \ {| \}/g,'')'用于从字符串中删除起始的'{'和结尾的'},然后基本上用','分割dtring,然后分割每个令牌由'='来获取'key'&'value'对。平坦的结构意味着你的所有键都将拥有原始值,而不是嵌套对象。在这种情况下,这种逻辑将无法正常工作,因为这些键将在值中包含“{” –
可能你需要一个JS对象。以JSON格式存储值,很容易转换为JS对象。 – Teemu
是否也包含嵌套的对象/数组? –