我有一个输入字符串, 是一个JSON数据包,ala:
{"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()
将抛出异常,数据将被设置为用户输入的原始值。
答案 0 :(得分:5)
除了优化它之外,还有一个更短的方法:
var data = $("#content").val();
try {
data = $.param($.parseJSON(data));
} catch (e) { }
这会阻止潜在多个选择器和.val()
调用,但这与您已经在做的概念相同。