Пример преобразования между объектом JSON и строкой JSON в javascript

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 в строку.

Supongo que te gusta

Origin blog.csdn.net/cdming/article/details/130212839
Recomendado
Clasificación