2010-10-03 2 views
1

У меня есть входная строка, которая будет либо стать JSON пакета, аля:Есть ли лучший способ конвертировать пакет JSON в строку запроса?

{"PHONE":"555-513-4318","FIRSTNAME":"Austin","ARTISTID":"2","LASTNAME":"Weber"} 

или строка запроса, аля:

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() сгенерирует исключение, и данные будут просто установить в исходное значение пользовательского ввода.

ответ

5

Там не намного короче способ сделать это, кроме оптимизации его только немного:

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

Это предотвращает потенциальных вызовов множественной селекторных и .val(), но то же самое понятие, как вы уже делает.

Смежные вопросы