一尘不染

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

json

我有一个输入字符串,将 要么 是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()则将引发异常,并且数据将仅设置为用户输入的原始值。


阅读 196

收藏
2020-07-27

共1个答案

一尘不染

除了进行一些优化之外,没有比这更短的方法了:

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

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

2020-07-27