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

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

最佳答案

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

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

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

关于javascript - 有没有更好的方法将 JSON 数据包转换为查询字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3848340/

相关文章:

Javascript 获取数组字段名称

jQuery 如果 DIV 没有类 "x"

javascript - Onclick 无法使用 Bootstrap 工作

javascript - 带悬停的 Bootstrap 下拉菜单

android - 我怎样才能从这个 JSON 字符串中删除这个符号?

javascript - 最大化按钮不调整字段集大小

javascript - 将选项文本而不是选项值传递到文本字段

Javascript:将参数传递给对象和函数......?

javascript - 更改div中最后一个字母的样式

php - 如何使用 SQL 查询中的 JSON 数据在 PHP 中创建图表