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

时间:2010-10-03 02:37:09

标签: javascript jquery 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()将抛出异常,数据将被设置为用户输入的原始值。

1 个答案:

答案 0 :(得分:5)

除了优化它之外,还有一个更短的方法:

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

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