代码之家  ›  专栏  ›  技术社区  ›  Adam Tuttle

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

  •  1
  • Adam Tuttle  · 技术社区  · 15 年前

    我有一个输入字符串 任何一个 成为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() 将引发异常,而数据将仅设置为用户输入的原始值。

    1 回复  |  直到 15 年前
        1
  •  6
  •   Nick Craver    15 年前

    除了稍微优化一下,没有比这更短的方法了:

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

    这样可以防止 多重选择器和 .val() 打电话,但和你现在做的一样。