Разница между JSON.stringify и JSON.разбор
Я был смущен, когда использовать эти два метода разбора.
после того, как я Эхо мои данные json_encoded и получить его обратно через ajax, я часто сталкиваюсь с путаницей о том, когда я должен использовать JSON.преобразовать в строки и JSON.разбор.
Я [object,object] в своем
15 ответов:
JSON.stringifyпревращается в объект JavaScript в формате JSON текст и сохраняет этот текст в формате JSON в строку.
JSON.parseпревращает строку текста JSON в объект JavaScript.
JSON.parse()для "разбора" чего-то, что было получено как JSON.JSON.stringify()создать строку JSON в объект/массив.
они противоположны друг другу.
JSON.stringify()сериализует объект JS в строку JSON, тогда какJSON.parse()десериализует строку JSON в объект JS.
во-первых,
JSON.stringify()функция преобразует значение JavaScript в строку обозначения объекта JavaScript (JSON).JSON.parse()функция преобразует строку JavaScript Object Notation (JSON) в объект. Для получения дополнительной информации об этих двух функциях, пожалуйста, обратитесь к следующим ссылкам.https://msdn.microsoft.com/library/cc836459 (v=vs.94). aspx https://msdn.microsoft.com/library/cc836466 (v=vs.94). aspx
во-вторых, следующий пример будет полезно для вас, чтобы понять эти две функции.
<form id="form1" runat="server"> <div> <div id="result"></div> </div> </form> <script> $(function () { //define a json object var employee = { "name": "John Johnson", "street": "Oslo West 16", "phone": "555 1234567" }; //use JSON.stringify to convert it to json string var jsonstring = JSON.stringify(employee); $("#result").append('<p>json string: ' + jsonstring + '</p>'); //convert json string to json object using JSON.parse function var jsonobject = JSON.parse(jsonstring); var info = '<ul><li>Name:' + jsonobject.name + '</li><li>Street:' + jsonobject.street + '</li><li>Phone:' + jsonobject.phone + '</li></ul>'; $("#result").append('<p>json object:</p>'); $("#result").append(info); }); </script>
они противоположны друг другу.
JSON.преобразовать в строки()
JSON.stringify () сериализует объект JS в строку JSON.
JSON.stringify({}); // '{}' JSON.stringify(true); // 'true' JSON.stringify('foo'); // '"foo"' JSON.stringify([1, 'false', false]); // '[1,"false",false]' JSON.stringify({ x: 5 }); // '{"x":5}' JSON.stringify(new Date(2006, 0, 2, 15, 4, 5)) // '"2006-01-02T15:04:05.000Z"' JSON.stringify({ x: 5, y: 6 }); // '{"x":5,"y":6}' or '{"y":6,"x":5}' JSON.stringify([new Number(1), new String('false'), new Boolean(false)]); // '[1,"false",false]'JSON.parse ()
JSON.метод parse () анализирует строку как JSON, при необходимости Преобразуя полученное значение.
JSON.parse('{}'); // {} JSON.parse('true'); // true JSON.parse('"foo"'); // "foo" JSON.parse('[1, 5, "false"]'); // [1, 5, "false"] JSON.parse('null'); // null
var log = { "page": window.location.href, "item": "item", "action": "action" }; log = JSON.stringify(log); console.log(log); console.log(JSON.parse(log));/ / выход будет:
//для 1-й консоли это строка типа:
'{ "page": window.location.href,"item": "item","action": "action" }'//за 2-й консоли-это объект типа:
Object { page : window.location.href, item : "item", action : "action" }
настоящая путаница здесь заключается не в разборе vs stringify, а в типе данных
dataпараметр обратного вызова успеха.
dataможет быть либо необработанный ответ, т. е. строка, либо это может быть объект JavaScript, согласно документации:успехов
тип: функция (любые данные, строка textStatus, jqXHR jqXHR ) A функция, вызываемая в случае успешного выполнения запроса. Функция получает прошло три аргумента: данные, возвращенные с сервера, отформатированы по данным параметр тип_данных или dataFilter обратного вызова функция, если она указана;<..>
и тип данных по умолчанию имеет значение "intelligent guess"
тип данных (по умолчанию: Intelligent Guess (xml, json, script или html))
Type: String тип данных, которые вы ожидаете от объекта сервер. Если ничего не указано, jQuery будет пытаются вывести он основан на MIME-тип ответа (XML-типа MIME, который будет приносить XML-файле, в 1.4 JSON будет приносить объект JavaScript, в 1.4 скрипт будет выполняться скрипт, и все остальное будет возвращено в виде строки).
Они являются полной противоположностью друг друга.
JSON.parse()используется анализ данные, которые были получены как JSON;это десериализует a JSON string на JavaScript object.
JSON.stringify()С другой стороны используется для создания JSON string С объект или массив;это сериализует a JavaScript object на JSON string.
JSON.stringify(obj [, replacer [, space]])- принимает любой сериализуемый объект и возвращает представление JSON в виде строки.
JSON.parse(string)- имеет хорошо сформированную строку JSON и возвращает соответствующий объект JavaScript.
JavaScript Object JSON String
JSON.stringify() <-> JSON.parse()
JSON.stringify (obj) - принимает любой сериализуемый объект и возвращает представление JSON в виде строки.
JSON.stringify() -> Object To String.JSON.parse (string) - принимает хорошо сформированную строку JSON и возвращает соответствующий объект JavaScript.
JSON.parse() -> String To Object.объяснение: формат JSON.преобразовать в строки(объект [, заменитель [пространство]]);
Replacer / Space-необязательно или принимает целочисленное значение или вы можно вызвать функцию возврата типа interger.
function replacer(key, value) { if (typeof value === 'number' && !isFinite(value)) { return String(value); } return value; }
- Replacer просто использовать для замены не конечных нет с нулем.
- пробел используется для отступа строки Json пробелом
они противостоят друг другу.
JSON.Stringify()преобразует JSON в строку иJSON.Parse()анализирует строку в JSON.
Я не знаю, упоминалось ли это, но одно из применений JSON.parse(JSON.stringify (myObject)) - это создание клона исходного объекта.
Это удобно, когда вы хотите возиться с некоторыми данными, не затрагивая исходный объект. Вероятно, не самый чистый / быстрый способ, но, безусловно, самый простой для объектов, которые не являются массово сложными.
JSON: он в основном используется для обмена данными с сервером. Перед отправкой объект JSON для сервера, он должен быть строкой.
JSON.stringify() //Converts the JSON object into the string representation. var jsonData={"Name":"ABC","Dept":"Software"};// It is a JSON object var jsonString=JSON.stringify(jsonData);// It is a string representation of the object // jsonString === '{"Name":"ABC","Dept":"Software"}'; is trueОн также преобразует массив Javascript в строку
var arrayObject=["ABC","Software"];// It is array object var arrString=JSON.stringify(array);// It is string representation of the array (object) // arrString === '["ABC","Software"]'; is trueкогда мы получили данные JSON с сервера, данные будут строковым форматом.Поэтому мы преобразуем строку в объект JSON.
JSON.parse() //To convert the string into JSON object. var data='{ "name":"ABC", "Dept":"Software"}'// it is a string (even though it looks like an object) var JsonData= JSON.parse(data);// It is a JSON Object representation of the string. // JsonData === { "name":"ABC", "Dept":"Software"}; is true
JSON.parse()используется для преобразования строки в объект.JSON.stringify()используется для преобразования объекта в строку.Вы тоже можете сослаться на это...
<script type="text/javascript"> function ajax_get_json(){ var hr = new XMLHttpRequest(); hr.open("GET", "JSON/mylist.json", true); hr.setRequestHeader("Content-type", "application/json",true); hr.onreadystatechange = function() { if(hr.readyState == 4 && hr.status == 200) { /* var return_data = hr.responseText; */ var data=JSON.parse(hr.responseText); var status=document.getElementById("status"); status.innerHTML = ""; /* status.innerHTML=data.u1.country; */ for(var obj in data) { status.innerHTML+=data[obj].uname+" is in "+data[obj].country+"<br/>"; } } } hr.send(null); status.innerHTML = "requesting..."; } </script>
Comments