我有一个输入字符串,要么是一个 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/