我存儲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
是否也包含嵌套的對象/數組? –