我有一个输入字符串,将 要么 是JSON数据包,鼻翼:
{"PHONE":"555-513-4318","FIRSTNAME":"Austin","ARTISTID":"2","LASTNAME":"Weber"}
或查询字符串,ala:
phone=555-513-4318&firstname=Austin&artistid=2&lastname=Weber
就我的目的而言,我需要 _ 始终 使用后一种格式。因此, _当 它是JSON数据时,我需要将其转换为查询字符串。这是用户输入的内容,因此我不能保证它会是另一个。
我正在使用jQuery,并且具有下面的代码,可以正常工作。我只是想知道是否有更好的方法来解决这个问题。
var data = ''; try { data = $.param($.parseJSON($("#content").val())); } catch (e) { data = $("#content").val(); } //... now do stuff with the `data` var...
这里的逻辑是,如果字符串不是有效的JSON,$.parseJSON()则将引发异常,并且数据将仅设置为用户输入的原始值。
$.parseJSON()
除了进行一些优化之外,没有比这更短的方法了:
var data = $("#content").val(); try { data = $.param($.parseJSON(data)); } catch (e) { }
这样可以防止 潜在的 多个选择器和.val()调用,但是与您已经在做的概念相同。
.val()