【问题标题】:Is there a better way to convert a JSON packet into a query string?有没有更好的方法将 JSON 数据包转换为查询字符串?
【发布时间】:2011-04-20 09:15:42
【问题描述】:

我有一个输入字符串,要么是一个 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()会抛出异常,数据只会被设置为用户输入的原始值。

【问题讨论】:

    标签: javascript jquery json


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多