有没有更好的方法将JSON数据包转换为查询字符串?

我有一个输入字符串,它将是一个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()将抛出exception,数据将被设置为用户输入的原始值。

除了优化它之外,没有更短的方法可以做到这一点:

 var data = $("#content").val(); try { data = $.param($.parseJSON(data)); } catch (e) { } 

这可以防止潜在的多选择器和.val()调用,但这与您已经在做的概念相同。