1. Методы преобразования, поддерживаемые плагином jQuery :
код показывает, как показано ниже:
$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象
Примечание. В jQuery 3.0 и более поздних версиях этот метод был удален, используйте собственный метод JSON.parse(str)
2. Способы конвертации, поддерживаемые браузерами
(Firefox, chrome, opera, safari, ie9, ie8) и другие браузеры:
код показывает, как показано ниже:
JSON.parse(jsonstr); //可以将json字符串转换成json对象
JSON.stringify(jsonobj); //可以将json对象转换成json对符串
Примечание: ie8 (режим совместимости), ie7 и ie6 не имеют объектов JSON, рекомендуется использовать официальный метод JSON и импортировать json.js.
3. Методы преобразования, поддерживаемые Javascript :
eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号
Примечание: ie8 (режим совместимости), ie7 и ie6 также могут использовать eval() для преобразования строки в объект JSON, но эти методы не рекомендуются. Этот метод небезопасен. Eval будет выполнять выражения в строке json.
4. Официальный метод преобразования JSON :
http://www.json.org/ предоставляет json.js, чтобы ie8 (режим совместимости), ie7 и ie6 могли поддерживать объекты JSON и их методы stringify() и parse();
Этот js можно получить по адресу https://github.com/douglascrockford/JSON-js, и сейчас обычно используется json2.js.
В процессе разработки, если небольшое количество параметров передается на фронт и обратно, вы можете напрямую использовать функцию данных ajax, передать ее в формате json, и фонового запроса достаточно, но иногда вам нужно передать несколько параметров, поэтому фон
Принимать несколько Запросов очень хлопотно, в это время их нужно передавать в виде класса или коллекции.
Например: интерфейс передает объект JSON в формате класса:
var jsonUserInfo = "{\"TUserName\":\"" + userName + "\",\"TInterest\":\"" + interest + "\",\"TSex\":\"" + sex + "\",\"TCity\":\"" + city + "\",\"TDetail\":\"" + detail + "\"}";
Если написанный по буквам jsonUserInfo не имеет escape-символов, вам необходимо преобразовать его с помощью var jsonArrayFinal = JSON.stringify(jsonArray); перед передачей.
код показывает, как показано ниже:
$.ajax(
{
type: "post",
url: "ReceiveHandler1.ashx",
data: { userInfo: jsonUserInfo, flag: "123456", key: "654321" },
dataType: "text",
success: function(data) {
$("#divShow").html(data);
}
});
Если передний план передает несколько массивов JSON в формате класса, то есть тип коллекции:
Например:
[{"name":"a"},{"name","b"},{"name","c"}], его нельзя передать, и необходимо использовать JSON.stringify для преобразования объекта массива в строка, а затем доставка AJAX.
Например, у меня есть две переменные, и я хочу преобразовать a в строку и b в объект JSON:
var a={"name":"tom","sex":"男","age":"24"};
var b='{"name":"Mike","sex":"女","age":"29"}';
В Firefox, Chrome, Opera, Safari, ie9, ie8 и других продвинутых браузерах вы можете напрямую использовать методы stringify() и parse() объектов JSON.
JSON.stringify(obj) преобразует JSON в строку. JSON.parse(string) преобразует строку в формат JSON;
Приведенное выше преобразование можно записать следующим образом:
var a={"name":"tom","sex":"男","age":"24"};
var b='{"name":"Mike","sex":"女","age":"29"}';
var aToStr=JSON.stringify(a);
var bToObj=JSON.parse(b);
alert(typeof(aToStr)); //string
alert(typeof(bToObj));//object
JSON.stringify()
ie8 (режим совместимости), ie7 и ie6 не имеют объектов JSON, но http://www.json.org/js.html предоставляет json.js, так что ie8 (режим совместимости), ie7 и ie6 могут поддерживать объекты JSON и его методы stringify() и parse(); вы можете получить этот js на https://github.com/douglascrockford/JSON-js, обычно сейчас используйте json2.js.
ie8 (режим совместимости), ie7 и ie6 могут использовать eval() для преобразования строк в объекты JSON,
var c='{"name":"Mike","sex":"女","age":"29"}';
var cToObj=eval("("+c+")");
alert(typeof(cToObj));
Существует также метод jQuery.parseJSON( json ) в jQuery для преобразования строки в формат JSON, который принимает строку JSON в стандартном формате и возвращает проанализированный объект JavaScript (JSON). Конечно, если вам интересно, вы можете самостоятельно инкапсулировать расширение jQuery, jQuery.stringifyJSON(obj) преобразует JSON в строку.