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

Ada*_*tle 1 javascript jquery json

我有一个输入字符串,将要么是JSON数据包,鼻翼:

{"PHONE":"555-513-4318","FIRSTNAME":"Austin","ARTISTID":"2","LASTNAME":"Weber"}
Run Code Online (Sandbox Code Playgroud)

或查询字符串,ala:

phone=555-513-4318&firstname=Austin&artistid=2&lastname=Weber
Run Code Online (Sandbox Code Playgroud)

为了我的目的,我需要始终使用后一种格式; 所以它是JSON数据时,我需要将它转换为查询字符串.它是用户输入,所以我不能保证它将是一个或另一个.

我正在使用jQuery,并且有以下代码,它可以工作.我只是想知道是否有更好的方法来解决它.

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

//... now do stuff with the `data` var...
Run Code Online (Sandbox Code Playgroud)

这里的逻辑是,如果字符串不是有效的JSON,那么$.parseJSON()将抛出异常,并且数据将仅设置为用户输入的原始值.

Nic*_*ver 6

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

var data = $("#content").val();
try {
  data = $.param($.parseJSON(data));
} catch (e) { }
Run Code Online (Sandbox Code Playgroud)

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